Shell HTTP JavaScript Node.JS Ruby Python Java Go

Accounts v0.27.1

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

The Accounts API manages banking accounts for bank customers. This API manages two primary types of resources:

Accounts are instances of a banking product (see the Products API). The product defines the type, rate, terms, attributes, and capabilities of accounts attached to the product. Accounts may be either personal accounts (also known as retail accounts) or business accounts (accounts for businesses, institutions, trusts, non-profits, etc., also known as commercial accounts).

A user can list their existing accounts and see the balances of those accounts (based on entitlements) and may have permission to change the account name and label and description. Each account has a primary user, which is a bank user (via the Users service). The primary user has full management and entitlements for the account, receives mailings such as statements or tax documents.

For personal (retail) accounts, an account has a primary owner and may have additional joint owners. For business (commercial) accounts, the account owner is the business organization and one or more authorized signers who have account access entitlements.

Because the account number is sensitive data, it is not included by default in account representations. The masked account number is returned in the accountNumbers object. To also receive the full account number when fetching an account, include the ?unmasked=true option. When linking an external account, the full account number should be in the accountNumbers.full property in the request. The accountNumbers.full property is included with the 201 response of creating an account.

This API also manages additional resources which are associated with accounts. For personal accounts, one can get the list of owners (the primary owner and joint owners). The account owner can also view and update the account's beneficiaries. For business accounts, the account holders can view the account's authorized signers: those who have authorization to conduct activity against the account.

Download OpenAPI Definition (YAML)

Base URLs:

Terms of service

Email: Apiture Web: Apiture

Authentication

Scope Scope Description
banking/read Read access to accounts and account-related resources such as transfers and transactions.
banking/write Write (update) access to accounts and account-related resources such as transfers and transactions.
banking/delete Delete access to deletable accounts and account-related resources such as transfers.
banking/readBalance Read access to account balances. This must be granted in addition to the apiture/readBanking scope in order to view balances, but is included in the banking/full scope.
banking/full Full access to accounts and account-related resources such as transfers and transactions.

Account

Bank Accounts

getAccounts

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/accounts/accounts HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/accounts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/accounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/accounts/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a collection of accounts

GET /accounts

Return a paginated sortable filterable searchable collection of accounts. The links in the response include pagination links.

By default, the items in the collection return a subset of the accounts fields, as described in the summaryAccount schema. To include all fields in an account, use the ?fields=* query parameter.

If ?embed=owners is used, each summary account representation in the _embedded.items array will embed the account owners or the authorized signers and owning organization.

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first account item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of account representations to return in this page.
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
state
(query)
string
Subset the accounts or external accounts collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending matches only items whose state is pending; ?state=removed|inactive matches items whose state is removed or inactive. This is combined with an implicit and with other filters if they are used. See filtering.
Enumerated values:
pending
active
inactive
frozen
closed
type
(query)
string
Subset the accounts or external accounts collection to those with this exact type value. Use | to separate multiple values. For example, ?type=Personal%20Savings matches only items whose type is Personal Savings; ?type=Personal%20Savings|Investment%20Account matches items whose type is Personal Savings or Investment Account. This is combined with an implicit and with other filters if they are used. See filtering.
subtype
(query)
string
Subset the accounts or external accounts collection to those with this exact subtype value. For example, ?subtype=true will limit the response to only product types which are subtypes. Use | to separate multiple values. For example, ?subtype=Basic%20Personal%20Savings matches only items whose subtype is Basic Personal Savings; ?subtype=Basic%20Personal%20Savings|Basic%20Investment%20Account matches items whose subtype is Basic Personal Savings or Basic Investment Account. This is combined with an implicit and with other filters if they are used. See filtering.
name
(query)
string
Subset the accounts or external accounts collection to those with this name value. Use | to separate multiple values. For example, ?name=Bartell matches only items whose name is Bartell; ?name=Bartell|kirsten matches items whose name is Bartell or kirsten. This is combined with an implicit and with other filters if they are used. See filtering.
productName
(query)
string
Subset the accounts collection to those with this productName value. Use | to separate multiple values. For example, ?productName=Basic%20Personal%20Savings matches only items whose productName is Basic Personal Savings; ?productName=Basic%20Personal%20Savings|Basic%20Investment%20Account matches items whose productName is Basic Personal Savings or inactive. This is combined with an implicit and with other filters if they are used. See filtering.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.
unmasked
(query)
boolean
When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true, to request that the response body includes the full account number. Such requests are auditable.
fields
(query)
string
Select which fields to include in each account in the collection's _embedded.items array. By default, a subset of all the fields in the account are returned (detailed in the summaryAccount schema). Use the value * to request all the fields in the account. Note that there is a performance impact of requesting this, since the account balance and interest (year to date) may require additional computation.
activeBetween
(query)
string
Limit the response to only accounts that are (or were) active between two dates, inclusive. The format of the query parameter is start-date,end-date where each date is in RFC 3339 date format, YYYY-MM-DD. The response includes accounts which became active on or before the end date and which were not closed before the start date.
Example: ?activeBetween=2019-03-01,2019-03-31.
This option may be combined with ?embed=owners. Note: This option is limited to administrative use.
embed
(query)
array[string]
If set, each account in the _embedded.items array will include additional embedded objects. The embed query parameter specifies which related resources to include in the _embedded object in each account in response. embed supports the following values:
  • owners : for personal accounts, include the account owners in the _embedded.owners object; for business accounts, include authorized signers in the _embedded.owners object and the owning business in the _embedded.owningBusiness object. (See the embeddedObjects schema.)
This option may be combined with ?activeBetween.

Try It

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/accounts/accounts/v1.0.0/profile.json",
  "start": "10",
  "limit": 10,
  "count": 67,
  "name": "accounts",
  "_links": {
    "self": {
      "href": "/accounts/accounts?start=10&limit=10"
    },
    "first": {
      "href": "/accounts/accounts?start=0&limit=10"
    },
    "next": {
      "href": "/accounts/accounts?start=20&limit=10"
    },
    "collection": {
      "href": "/accounts/accounts"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
        "name": "My basic savings account",
        "title": "John Smith",
        "state": "active",
        "balance": {
          "current": "3450.30",
          "available": "3450.30",
          "currency": "USD"
        },
        "accountNumbers": {
          "masked": "*************3210"
        },
        "_links": {
          "self": {
            "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
          },
          "apiture:product": {
            "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
          }
        }
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: accounts
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
409 Conflict
Conflict. Query parameters are in conflict. Do not use both ?orderable= and ?state= query parameters.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createAccount

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/accounts \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/accounts/accounts HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/accounts',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "name": "My car savings account",
  "description": "My savings account used to save for a new car, opened in 2019. I try to put $550/month into this account.",
  "_links": {
    "apiture:user": {
      "href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    },
    "apiture:organization": {
      "href": "/organizations/organizations/a1c9212c-0a5c-4779-a3fc-95e1c1e92e71"
    },
    "apiture:application": {
      "href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
    }
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/accounts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/accounts/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/accounts/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create a new account.

POST /accounts

Create a new banking account. The request body must contain a link to an active product, user, organization (for a business account), and may contain an approved application. The required resource links are detailed in the createAccount schema used for the request body. The application will be linked to the account and can be identifiable with the account. The product provides specific banking information like the type of product and it's subtype; the new account will adopt the terms and attributes of that banking product. If a name is not included in the request, the product name will be used to provide a unique name for this user. The account will be created in the pending state (which allows deletion of the account). A successful operation returns the full account number.

Body parameter

{
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "name": "My car savings account",
  "description": "My savings account used to save for a new car, opened in 2019. I try to put $550/month into this account.",
  "_links": {
    "apiture:user": {
      "href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    },
    "apiture:organization": {
      "href": "/organizations/organizations/a1c9212c-0a5c-4779-a3fc-95e1c1e92e71"
    },
    "apiture:application": {
      "href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
    }
  }
}

Parameters

Parameter Description
body
(body)
createAccount (required)
The data necessary to create a new account.

Try It

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    }
  },
  "name": "My savings",
  "description": "My Basic savings account",
  "routingNumber": "021000021",
  "institutionName": "Canapi Bank",
  "state": "active",
  "title": "John Smith",
  "ifxType": "SDA",
  "allowsTransfers": true,
  "accountNumbers": {
    "full": "9876543210",
    "masked": "*************3210"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "currency": "USD"
  },
  "rates": {
    "apy": "1.410",
    "nominal": "1.400"
  },
  "rate": {
    "value": "1.40",
    "type": "apr"
  },
  "openedAt": {}
}

Responses

StatusDescription
201 Created
Created
Schema: summaryAccount
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
409 Conflict
Conflict. The request attempted to create an account when a dependent resource is not in a correct state, such as the organization being in a state other than 'active'.
Schema: errorResponse

Response Headers

StatusDescription
201 Location string uri
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme://host
201 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource.

getAccount

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts/{accountId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/accounts/accounts/{accountId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/accounts/accounts/{accountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts/{accountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this account

GET /accounts/{accountId}

Return a HAL representation of this account resource.

Parameters

Parameter Description
accountId
(path)
string (required)
The unique identifier of this account. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.
unmasked
(query)
boolean
When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true, to request that the response body includes the full account number. Such requests are auditable.
embed
(query)
array[string]
The embed query parameter specifies which related resources to include in the _embedded object in the response. embed supports the following comma-separated values:
  • owners : for personal accounts, include the account owners in the _embedded.owners object; for business accounts, include authorized signers in the _embedded.owners object and the owning business in the _embedded.owningBusiness object. (See the embeddedObjects schema.)
  • beneficiaries : include the account beneficiaries (for personal accounts).
  • authorizedSigners : include the account authorized signers of the owning business (for business accounts).
  • product : include the banking product for this account. This is the default for embed if omitted, but if embed is specified explicitly, include products if you want it embedded.
For example, to embed both the owners and beneficiaries for personal accounts use GET .../accounts/{accountId}?embed=owners,beneficiaries. To embed the banking product, the owning business, authorized signers for business accounts, use GET .../accounts/{accountId}?embed=product,owners,authorizedSigners.

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "name": "My 1y CD",
  "description": "My 1-year CD",
  "productName": "1 Year Basic Certificate of Deposit",
  "title": "John Smith",
  "routingNumber": "021000021",
  "institutionName": "Canapi Bank",
  "state": "active",
  "allowsTransfers": true,
  "accountNumbers": {
    "masked": "*************3210"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "pendingCredits": "3000.00",
    "pendingDebits": "1500.00",
    "currency": "USD"
  },
  "rate": {
    "value": "2.625",
    "type": "apr"
  },
  "rates": {
    "apy": "1.410",
    "apye": "1.415",
    "nominal": "1.400",
    "next": "1.400"
  },
  "openedAt": {},
  "type": "CD",
  "subtype": "Basic CD",
  "ifxType": "CDA",
  "interest": {
    "yearToDate": "30.12",
    "sinceOpening": "44.80"
  },
  "timeDeposit": {
    "maturesAt": "2019-10-30T08:16:00.000Z",
    "term": "P1D",
    "maturityPolicy": "rolloverPrincipalAndInterest",
    "rolloverProductName": "Basic Savings"
  },
  "cycleWithdrawalCount": 0,
  "_embedded": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
    }
  },
  "_links": {
    "self": {
      "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:acceptApyOffer": {
      "href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:rolloverProduct": {
      "href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: account
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such account resource at the specified {accountId}. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource.

patchAccount

Code samples

# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/accounts/accounts/{accountId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.devbank.apiture.com/accounts/accounts/{accountId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "name": "My 1y CD",
  "description": "My 1-year CD",
  "productName": "1 Year Basic Certificate of Deposit",
  "title": "John Smith",
  "routingNumber": "021000021",
  "institutionName": "Canapi Bank",
  "state": "active",
  "allowsTransfers": true,
  "accountNumbers": {
    "masked": "*************3210"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "pendingCredits": "3000.00",
    "pendingDebits": "1500.00",
    "currency": "USD"
  },
  "rate": {
    "value": "2.625",
    "type": "apr"
  },
  "rates": {
    "apy": "1.410",
    "apye": "1.415",
    "nominal": "1.400",
    "next": "1.400"
  },
  "openedAt": {},
  "type": "CD",
  "subtype": "Basic CD",
  "ifxType": "CDA",
  "interest": {
    "yearToDate": "30.12",
    "sinceOpening": "44.80"
  },
  "timeDeposit": {
    "maturesAt": "2019-10-30T08:16:00.000Z",
    "term": "P1D",
    "maturityPolicy": "rolloverPrincipalAndInterest",
    "rolloverProductName": "Basic Savings"
  },
  "cycleWithdrawalCount": 0,
  "_embedded": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
    }
  },
  "_links": {
    "self": {
      "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:acceptApyOffer": {
      "href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:rolloverProduct": {
      "href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
    }
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.devbank.apiture.com/accounts/accounts/{accountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/accounts/accounts/{accountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this account

PATCH /accounts/{accountId}

Perform a partial updates of this account. Fields which are omitted from the request are not updated. Nested _embedded objects are ignored if included. This operation does not change the state property. To change the state of the account, use the POST operations activateAccount, deactivateAccount, freezeAccount, closeAccount, removeAccount, which are available in the _links on an account instance.

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "name": "My 1y CD",
  "description": "My 1-year CD",
  "productName": "1 Year Basic Certificate of Deposit",
  "title": "John Smith",
  "routingNumber": "021000021",
  "institutionName": "Canapi Bank",
  "state": "active",
  "allowsTransfers": true,
  "accountNumbers": {
    "masked": "*************3210"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "pendingCredits": "3000.00",
    "pendingDebits": "1500.00",
    "currency": "USD"
  },
  "rate": {
    "value": "2.625",
    "type": "apr"
  },
  "rates": {
    "apy": "1.410",
    "apye": "1.415",
    "nominal": "1.400",
    "next": "1.400"
  },
  "openedAt": {},
  "type": "CD",
  "subtype": "Basic CD",
  "ifxType": "CDA",
  "interest": {
    "yearToDate": "30.12",
    "sinceOpening": "44.80"
  },
  "timeDeposit": {
    "maturesAt": "2019-10-30T08:16:00.000Z",
    "term": "P1D",
    "maturityPolicy": "rolloverPrincipalAndInterest",
    "rolloverProductName": "Basic Savings"
  },
  "cycleWithdrawalCount": 0,
  "_embedded": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
    }
  },
  "_links": {
    "self": {
      "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:acceptApyOffer": {
      "href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:rolloverProduct": {
      "href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
    }
  }
}

Parameters

Parameter Description
accountId
(path)
string (required)
The unique identifier of this account. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource.
body
(body)
account (required)

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "name": "My 1y CD",
  "description": "My 1-year CD",
  "productName": "1 Year Basic Certificate of Deposit",
  "title": "John Smith",
  "routingNumber": "021000021",
  "institutionName": "Canapi Bank",
  "state": "active",
  "allowsTransfers": true,
  "accountNumbers": {
    "masked": "*************3210"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "pendingCredits": "3000.00",
    "pendingDebits": "1500.00",
    "currency": "USD"
  },
  "rate": {
    "value": "2.625",
    "type": "apr"
  },
  "rates": {
    "apy": "1.410",
    "apye": "1.415",
    "nominal": "1.400",
    "next": "1.400"
  },
  "openedAt": {},
  "type": "CD",
  "subtype": "Basic CD",
  "ifxType": "CDA",
  "interest": {
    "yearToDate": "30.12",
    "sinceOpening": "44.80"
  },
  "timeDeposit": {
    "maturesAt": "2019-10-30T08:16:00.000Z",
    "term": "P1D",
    "maturityPolicy": "rolloverPrincipalAndInterest",
    "rolloverProductName": "Basic Savings"
  },
  "cycleWithdrawalCount": 0,
  "_embedded": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
    }
  },
  "_links": {
    "self": {
      "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:acceptApyOffer": {
      "href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:rolloverProduct": {
      "href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: account
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such account resource at the specified {accountId}. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
409 Conflict
Conflict. the request attempted to change the state in an incompatible way, such as an attempt to change the state from active to pending or to change the name to a name that is already in use by another external account that the user or organization holds.
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource.

deleteAccount

Code samples

# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/accounts/accounts/{accountId} \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE https://api.devbank.apiture.com/accounts/accounts/{accountId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.devbank.apiture.com/accounts/accounts/{accountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/accounts/accounts/{accountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Delete this account resource

DELETE /accounts/{accountId}

Delete this account resource and any resources that are owned by it. Note that only pending accounts may be deleted. Once an account has been activated, it cannot be deleted, only inactivated or closed.

Parameters

Parameter Description
If-Match
(header)
string
The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource.
accountId
(path)
string (required)
The unique identifier of this account. This is an opaque string.

Try It

Example responses

412 Response

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
StatusDescription
409 Conflict
Conflict. the request attempted to change the state in an incompatible way, such as an attempt to change the state from active to pending or to change the name to a name that is already in use by another external account that the user or organization holds.
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

generateVerificationLetter

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter \
  -H 'Accept: application/hal+json' \
  -H 'Accept: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
Accept: string

var headers = {
  'Accept':'application/hal+json',
  'Accept':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'Accept':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Accept' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Accept': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Accept": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Generate the account verification letter

POST /accounts/{accountId}/verificationLetter

Generate the account verification letter for this internal account.

If the letter has not been generated, this returns 202 Accepted and no response body. The response will include a Retry-After response header with a recommended retry interval in seconds.

If the letter has been generated for this account, the operations returns 200 OK and the response body is the PDF formatted account verification letter.

For personal accounts, only the primary and joint owners may invoke this operation.

For business accounts, only the authorized signers associated with the owning business organization may invoke this operation.

Parameters

Parameter Description
accountId
(path)
string (required)
The unique identifier of this account. This is an opaque string.
Accept
(header)
string
Optional. Only application/pdf is currently supported.

Try It

Example responses

404 Response

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

406 Response

Responses

StatusDescription
200 OK
OK. The request has succeeded.
202 Accepted
Accepted. The request has been accepted for processing, but the processing has not been completed.
StatusDescription
404 Not Found
Not Found. There is no such account resource at the specified {accountId}. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
406 Not Acceptable
Not Acceptable. Indicates that the server cannot produce a response matching the list of acceptable values defined in the request's headers. This operation only supports Accept: application/pdf.
Schema: errorResponse

Response Headers

StatusDescription
200 Content-Type string
When the letter is available, the response body will be the PDF formatted account verification letter for this account.
202 Retry-After string
Indicates a suggested delay in seconds after which the client should retry the operation. Example: Retry-After: 10

activateAccount

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/activeAccounts?account=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/accounts/activeAccounts?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/activeAccounts',
  method: 'post',
  data: '?account=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/activeAccounts?account=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/accounts/activeAccounts',
  params: {
  'account' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/accounts/activeAccounts', params={
  'account': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/activeAccounts?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/activeAccounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Activate an account

POST /activeAccounts

Activate an account that is eligible to be activated. Only accounts which are pending or inactive or frozen may be activated. This operation is invoked from the apiture:activate link on an account, which only exists if the action is allowed. This changes the state to active.

Parameters

Parameter Description
account
(query)
string (required)
A server-supplied value which identifies the account instance.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource.

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "name": "My 1y CD",
  "description": "My 1-year CD",
  "productName": "1 Year Basic Certificate of Deposit",
  "title": "John Smith",
  "routingNumber": "021000021",
  "institutionName": "Canapi Bank",
  "state": "active",
  "allowsTransfers": true,
  "accountNumbers": {
    "masked": "*************3210"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "pendingCredits": "3000.00",
    "pendingDebits": "1500.00",
    "currency": "USD"
  },
  "rate": {
    "value": "2.625",
    "type": "apr"
  },
  "rates": {
    "apy": "1.410",
    "apye": "1.415",
    "nominal": "1.400",
    "next": "1.400"
  },
  "openedAt": {},
  "type": "CD",
  "subtype": "Basic CD",
  "ifxType": "CDA",
  "interest": {
    "yearToDate": "30.12",
    "sinceOpening": "44.80"
  },
  "timeDeposit": {
    "maturesAt": "2019-10-30T08:16:00.000Z",
    "term": "P1D",
    "maturityPolicy": "rolloverPrincipalAndInterest",
    "rolloverProductName": "Basic Savings"
  },
  "cycleWithdrawalCount": 0,
  "_embedded": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
    }
  },
  "_links": {
    "self": {
      "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:acceptApyOffer": {
      "href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:rolloverProduct": {
      "href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: account
StatusDescription
400 Bad Request
Bad Request. The account parameter was malformed or does not refer to an account.
Schema: errorResponse
StatusDescription
409 Conflict
Conflict. The request to change the state of the account is not allowed. For example, one cannot change the state of a closed account, or change a non-pending account to pending. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

deactivateAccount

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/inactiveAccounts?account=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/accounts/inactiveAccounts?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/inactiveAccounts',
  method: 'post',
  data: '?account=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/inactiveAccounts?account=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/accounts/inactiveAccounts',
  params: {
  'account' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/accounts/inactiveAccounts', params={
  'account': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/inactiveAccounts?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/inactiveAccounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Deactivate an account

POST /inactiveAccounts

Deactivate an account that is eligible to be deactivated. Only accounts which are pending or active may be deactivated. This operation is invoked from the apiture:deactivate link on an account; the link only exists if the action is allowed. This changes the state to inactive.

Parameters

Parameter Description
account
(query)
string (required)
A server-supplied value which identifies the account instance.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource.

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "name": "My 1y CD",
  "description": "My 1-year CD",
  "productName": "1 Year Basic Certificate of Deposit",
  "title": "John Smith",
  "routingNumber": "021000021",
  "institutionName": "Canapi Bank",
  "state": "active",
  "allowsTransfers": true,
  "accountNumbers": {
    "masked": "*************3210"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "pendingCredits": "3000.00",
    "pendingDebits": "1500.00",
    "currency": "USD"
  },
  "rate": {
    "value": "2.625",
    "type": "apr"
  },
  "rates": {
    "apy": "1.410",
    "apye": "1.415",
    "nominal": "1.400",
    "next": "1.400"
  },
  "openedAt": {},
  "type": "CD",
  "subtype": "Basic CD",
  "ifxType": "CDA",
  "interest": {
    "yearToDate": "30.12",
    "sinceOpening": "44.80"
  },
  "timeDeposit": {
    "maturesAt": "2019-10-30T08:16:00.000Z",
    "term": "P1D",
    "maturityPolicy": "rolloverPrincipalAndInterest",
    "rolloverProductName": "Basic Savings"
  },
  "cycleWithdrawalCount": 0,
  "_embedded": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
    }
  },
  "_links": {
    "self": {
      "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:acceptApyOffer": {
      "href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:rolloverProduct": {
      "href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: account
StatusDescription
400 Bad Request
Bad Request. The account parameter was malformed or does not refer to an account.
Schema: errorResponse
StatusDescription
409 Conflict
Conflict. The request to change the state of the account is not allowed. For example, one cannot change the state of a closed account, or change a non-pending account to pending. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

freezeAccount

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/frozenAccounts?account=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/accounts/frozenAccounts?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/frozenAccounts',
  method: 'post',
  data: '?account=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/frozenAccounts?account=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/accounts/frozenAccounts',
  params: {
  'account' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/accounts/frozenAccounts', params={
  'account': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/frozenAccounts?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/frozenAccounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Freeze an account

POST /frozenAccounts

Freeze an account that is eligible to be frozen. Only accounts which are active or inactive may be frozen. This operation is invoked from the apiture:freeze link on an account; the link only exists if the action is allowed. This changes the state to frozen.

Parameters

Parameter Description
account
(query)
string (required)
A server-supplied value which identifies the account instance.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource.

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "name": "My 1y CD",
  "description": "My 1-year CD",
  "productName": "1 Year Basic Certificate of Deposit",
  "title": "John Smith",
  "routingNumber": "021000021",
  "institutionName": "Canapi Bank",
  "state": "active",
  "allowsTransfers": true,
  "accountNumbers": {
    "masked": "*************3210"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "pendingCredits": "3000.00",
    "pendingDebits": "1500.00",
    "currency": "USD"
  },
  "rate": {
    "value": "2.625",
    "type": "apr"
  },
  "rates": {
    "apy": "1.410",
    "apye": "1.415",
    "nominal": "1.400",
    "next": "1.400"
  },
  "openedAt": {},
  "type": "CD",
  "subtype": "Basic CD",
  "ifxType": "CDA",
  "interest": {
    "yearToDate": "30.12",
    "sinceOpening": "44.80"
  },
  "timeDeposit": {
    "maturesAt": "2019-10-30T08:16:00.000Z",
    "term": "P1D",
    "maturityPolicy": "rolloverPrincipalAndInterest",
    "rolloverProductName": "Basic Savings"
  },
  "cycleWithdrawalCount": 0,
  "_embedded": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
    }
  },
  "_links": {
    "self": {
      "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:acceptApyOffer": {
      "href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:rolloverProduct": {
      "href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: account
StatusDescription
400 Bad Request
Bad Request. The account parameter was malformed or does not refer to an account.
Schema: errorResponse
StatusDescription
409 Conflict
Conflict. The request to change the state of the account is not allowed. For example, one cannot change the state of a closed account, or change a non-pending account to pending. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

closeAccount

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/closedAccounts?account=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/accounts/closedAccounts?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/closedAccounts',
  method: 'post',
  data: '?account=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/closedAccounts?account=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/accounts/closedAccounts',
  params: {
  'account' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/accounts/closedAccounts', params={
  'account': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/closedAccounts?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/closedAccounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Close an account

POST /closedAccounts

Close an account that is eligible to be closed. Only accounts which are active or inactive or frozen may be closed. This operation is invoked from the apiture:close link on an account; the link only exists if the action is allowed. This changes the state to closed. Closing an account will append the text " (Closed YYYY-MM-DDThh:mm:ssZ)" to the name, so that the previous name may be used for other accounts.

Parameters

Parameter Description
account
(query)
string (required)
A server-supplied value which identifies the account instance.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource.

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "name": "My 1y CD",
  "description": "My 1-year CD",
  "productName": "1 Year Basic Certificate of Deposit",
  "title": "John Smith",
  "routingNumber": "021000021",
  "institutionName": "Canapi Bank",
  "state": "active",
  "allowsTransfers": true,
  "accountNumbers": {
    "masked": "*************3210"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "pendingCredits": "3000.00",
    "pendingDebits": "1500.00",
    "currency": "USD"
  },
  "rate": {
    "value": "2.625",
    "type": "apr"
  },
  "rates": {
    "apy": "1.410",
    "apye": "1.415",
    "nominal": "1.400",
    "next": "1.400"
  },
  "openedAt": {},
  "type": "CD",
  "subtype": "Basic CD",
  "ifxType": "CDA",
  "interest": {
    "yearToDate": "30.12",
    "sinceOpening": "44.80"
  },
  "timeDeposit": {
    "maturesAt": "2019-10-30T08:16:00.000Z",
    "term": "P1D",
    "maturityPolicy": "rolloverPrincipalAndInterest",
    "rolloverProductName": "Basic Savings"
  },
  "cycleWithdrawalCount": 0,
  "_embedded": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
    }
  },
  "_links": {
    "self": {
      "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:acceptApyOffer": {
      "href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:rolloverProduct": {
      "href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: account
StatusDescription
400 Bad Request
Bad Request. The account parameter was malformed or does not refer to an account.
Schema: errorResponse
StatusDescription
409 Conflict
Conflict. The request to change the state of the account is not allowed. For example, one cannot change the state of a closed account, or change a non-pending account to pending. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

reviewAccount

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/externalAccountsUnderReview?account=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/accounts/externalAccountsUnderReview?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/externalAccountsUnderReview',
  method: 'post',
  data: '?account=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/externalAccountsUnderReview?account=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/accounts/externalAccountsUnderReview',
  params: {
  'account' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/accounts/externalAccountsUnderReview', params={
  'account': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccountsUnderReview?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/externalAccountsUnderReview", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

The account is under review

POST /externalAccountsUnderReview

Begin review of an account, if its state allows review. This changes the state to underReview. When an external account is under review, the financial institution reviews the account details and may approve or reject the account; this will set the state to active or frozen, respectively. Only accounts which are verifying may make this state transition, and review is normally triggered automatically if external account verification was successful and customer data does not match with the account's holders' information. This operation is invoked from the apiture:review link on an account, which only exists if the action is allowed to update an account state to under review. Only administrative or service applications may call this operation, not bank customers.

Parameters

Parameter Description
account
(query)
string (required)
A server-supplied value which identifies the account instance.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource.

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "name": "My 1y CD",
  "description": "My 1-year CD",
  "productName": "1 Year Basic Certificate of Deposit",
  "title": "John Smith",
  "routingNumber": "021000021",
  "institutionName": "Canapi Bank",
  "state": "active",
  "allowsTransfers": true,
  "accountNumbers": {
    "masked": "*************3210"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "pendingCredits": "3000.00",
    "pendingDebits": "1500.00",
    "currency": "USD"
  },
  "rate": {
    "value": "2.625",
    "type": "apr"
  },
  "rates": {
    "apy": "1.410",
    "apye": "1.415",
    "nominal": "1.400",
    "next": "1.400"
  },
  "openedAt": {},
  "type": "CD",
  "subtype": "Basic CD",
  "ifxType": "CDA",
  "interest": {
    "yearToDate": "30.12",
    "sinceOpening": "44.80"
  },
  "timeDeposit": {
    "maturesAt": "2019-10-30T08:16:00.000Z",
    "term": "P1D",
    "maturityPolicy": "rolloverPrincipalAndInterest",
    "rolloverProductName": "Basic Savings"
  },
  "cycleWithdrawalCount": 0,
  "_embedded": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
    }
  },
  "_links": {
    "self": {
      "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:acceptApyOffer": {
      "href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:rolloverProduct": {
      "href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: account
StatusDescription
400 Bad Request
Bad Request. The account parameter was malformed or does not refer to an account.
Schema: errorResponse
StatusDescription
409 Conflict
Conflict. The request to change the state of the account is not allowed. For example, one cannot change the state of a closed account, or change a non-pending account to pending. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

bumpApyRate

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/bumpedApyAccounts?account=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/accounts/bumpedApyAccounts?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/bumpedApyAccounts',
  method: 'post',
  data: '?account=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/bumpedApyAccounts?account=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/accounts/bumpedApyAccounts',
  params: {
  'account' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/accounts/bumpedApyAccounts', params={
  'account': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/bumpedApyAccounts?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/bumpedApyAccounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Bump the account's APY rate

POST /bumpedApyAccounts

On some banking products (CD or time-deposit accounts), the financial institution (Financial Institution) may offer a new rate in the rates.bumpToApy property. The user can either accept that offer or defer accepting the offer in anticipation of a better APY offer in the future. Note: The FI may restrict the user to only one rate increase per term.

The client should call this operation when the user elects to accept the APY offer. There is no additional confirmation of this action; the new rate becomes effective and future rate bumps may not be allowed during the remainder of this account's term. The APY rate that was in effect before bump becomes the rates.originalApy, the rates.bumpToApy becomes the new apy, and rates.bumpToApy is dropped from the rates. The account's timeDeposit.apyBumpedAt records when the user accepted the bumped rate.

If and only if a new APY offer is available, this operation is listed in the accounts _links with the link relation apiture:bumpApyRate.

Parameters

Parameter Description
account
(query)
string (required)
A server-supplied value which identifies the account instance.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource.

Try It

Example responses

202 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "name": "My 1y CD",
  "description": "My 1-year CD",
  "productName": "1 Year Basic Certificate of Deposit",
  "title": "John Smith",
  "routingNumber": "021000021",
  "institutionName": "Canapi Bank",
  "state": "active",
  "allowsTransfers": true,
  "accountNumbers": {
    "masked": "*************3210"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "pendingCredits": "3000.00",
    "pendingDebits": "1500.00",
    "currency": "USD"
  },
  "rate": {
    "value": "2.625",
    "type": "apr"
  },
  "rates": {
    "apy": "1.410",
    "apye": "1.415",
    "nominal": "1.400",
    "next": "1.400"
  },
  "openedAt": {},
  "type": "CD",
  "subtype": "Basic CD",
  "ifxType": "CDA",
  "interest": {
    "yearToDate": "30.12",
    "sinceOpening": "44.80"
  },
  "timeDeposit": {
    "maturesAt": "2019-10-30T08:16:00.000Z",
    "term": "P1D",
    "maturityPolicy": "rolloverPrincipalAndInterest",
    "rolloverProductName": "Basic Savings"
  },
  "cycleWithdrawalCount": 0,
  "_embedded": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
    }
  },
  "_links": {
    "self": {
      "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:acceptApyOffer": {
      "href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:rolloverProduct": {
      "href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
    }
  }
}

Responses

StatusDescription
202 Accepted
Accepted
Schema: account
StatusDescription
400 Bad Request
Bad Request. The account parameter was malformed or does not refer to an account.
Schema: errorResponse
StatusDescription
409 Conflict
Conflict. This account type does not allow bumping the APY rate.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

External Account

External Bank Accounts

getExternalAccounts

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/externalAccounts \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/accounts/externalAccounts HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/externalAccounts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/externalAccounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/externalAccounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/accounts/externalAccounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/externalAccounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a collection of external accounts

GET /externalAccounts

Return a paginated sortable filterable searchable collection of external accounts. The links in the response include pagination links.

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first external account item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of external account representations to return in this page.
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
state
(query)
string
Subset the accounts or external accounts collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending matches only items whose state is pending; ?state=removed|inactive matches items whose state is removed or inactive. This is combined with an implicit and with other filters if they are used. See filtering.
Enumerated values:
pending
active
inactive
frozen
closed
type
(query)
string
Subset the accounts or external accounts collection to those with this exact type value. Use | to separate multiple values. For example, ?type=Personal%20Savings matches only items whose type is Personal Savings; ?type=Personal%20Savings|Investment%20Account matches items whose type is Personal Savings or Investment Account. This is combined with an implicit and with other filters if they are used. See filtering.
name
(query)
string
Subset the accounts or external accounts collection to those with this name value. Use | to separate multiple values. For example, ?name=Bartell matches only items whose name is Bartell; ?name=Bartell|kirsten matches items whose name is Bartell or kirsten. This is combined with an implicit and with other filters if they are used. See filtering.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.
unmasked
(query)
boolean
When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true, to request that the response body includes the full account number. Such requests are auditable.
embed
(query)
array[string]
If set, each external account in the _embedded.items array will include additional embedded objects. The embed query parameter specifies which related resources to include in the _embedded object in each account in response. embed supports the following values:
  • owners: for external accounts, include the account owners in the _embedded.accountOwners object. (See the externalAccountEmbeddedObjects schema.)

Try It

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/accounts/externalAccounts/v1.0.0/profile.json",
  "start": "10",
  "limit": 10,
  "count": 67,
  "name": "external accounts",
  "_links": {
    "self": {
      "href": "/accounts/externalAccounts?start=10&limit=10"
    },
    "first": {
      "href": "/accounts/externalAccounts?start=0&limit=10"
    },
    "next": {
      "href": "/accounts/externalAccounts?start=20&limit=10"
    },
    "collection": {
      "href": "/accounts/externalAccounts"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "name": "My account at 3rdParty Bank",
        "_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
        "type": "savings",
        "ifxType": "SDA",
        "state": "active",
        "primaryUserName": "Lucille Wellphunded",
        "institutionName": "3rdParty Bank",
        "verifiedAt": "2018-01-20T18:13:33.375Z",
        "createdAt": "2018-01-20T05:54:52.375Z",
        "routingNumber": "021000021",
        "accountNumbers": {
          "masked": "*************3210"
        },
        "_links": {
          "self": {
            "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        }
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: externalAccounts
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createExternalAccount

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/externalAccounts \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/accounts/externalAccounts HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/externalAccounts',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
  "name": "My account at 3rdParty Bank",
  "institutionName": "3rd Party Bank",
  "primaryUserName": "Lana Michaels",
  "type": "savings",
  "ifxType": "SDA",
  "routingNumber": "021000021",
  "accountNumbers": {
    "full": "9876543210"
  },
  "_links": {
    "apiture:user": {
      "href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
    },
    "apiture:productType": {
      "href": "/products/productTypes/a93c19ba-f96d-4b30-8dd7-92b2d6ffcb0b"
    }
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/externalAccounts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/accounts/externalAccounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/accounts/externalAccounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/externalAccounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create a new external account

POST /externalAccounts

Create a new external account. A successful operation returns the full accountNumber.

Body parameter

{
  "_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
  "name": "My account at 3rdParty Bank",
  "institutionName": "3rd Party Bank",
  "primaryUserName": "Lana Michaels",
  "type": "savings",
  "ifxType": "SDA",
  "routingNumber": "021000021",
  "accountNumbers": {
    "full": "9876543210"
  },
  "_links": {
    "apiture:user": {
      "href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
    },
    "apiture:productType": {
      "href": "/products/productTypes/a93c19ba-f96d-4b30-8dd7-92b2d6ffcb0b"
    }
  }
}

Parameters

Parameter Description
body
(body)
createExternalAccount (required)
The data necessary to create a new external account.

Try It

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "productType": {
      "_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
      "_profile": "https://api.apiture.com/schemas/products/productType/v1.0.0/profile.json",
      "name": "savings",
      "label": "Personal Savings"
    }
  },
  "name": "My account at 3rdParty Bank",
  "type": "savings",
  "ifxType": "SDA",
  "state": "active",
  "primaryUserName": "Lucille Wellphunded",
  "verifiedAt": "2018-01-20T18:13:33.375Z",
  "createdAt": "2018-01-20T05:54:52.375Z",
  "institutionName": "3rdParty Bank",
  "routingNumber": "021000021",
  "accountNumbers": {
    "masked": "*************3210"
  }
}

Responses

StatusDescription
201 Created
Created
Schema: externalAccount
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
409 Conflict
Conflict. An external account with the key account details already exists for the user, such as an attempt to change the state from active to pending, or to change the name to a name that is already in use by another external account that the user or organization holds.
Schema: errorResponse

Response Headers

StatusDescription
201 Location string uri
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme://host
201 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource.

getExternalAccount

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this external account

GET /externalAccounts/{externalAccountId}

Return a HAL representation of this external account resource.

Parameters

Parameter Description
externalAccountId
(path)
string (required)
The unique identifier of this external account. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.
unmasked
(query)
boolean
When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true, to request that the response body includes the full account number. Such requests are auditable.
embed
(query)
array[string]
The embed query parameter specifies which related resources to include in the _embedded object in the response. embed supports the following comma-separated values:
  • owners : for external accounts, include the external account owners in the _embedded.accountOwners object;

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "productType": {
      "_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
      "_profile": "https://api.apiture.com/schemas/products/productType/v1.0.0/profile.json",
      "name": "savings",
      "label": "Personal Savings"
    }
  },
  "name": "My account at 3rdParty Bank",
  "type": "savings",
  "ifxType": "SDA",
  "state": "active",
  "primaryUserName": "Lucille Wellphunded",
  "verifiedAt": "2018-01-20T18:13:33.375Z",
  "createdAt": "2018-01-20T05:54:52.375Z",
  "institutionName": "3rdParty Bank",
  "routingNumber": "021000021",
  "accountNumbers": {
    "masked": "*************3210"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: externalAccount
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such external account resource at the specified {externalAccountId} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this external account resource.

patchExternalAccount

Code samples

# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "productType": {
      "_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
      "_profile": "https://api.apiture.com/schemas/products/productType/v1.0.0/profile.json",
      "name": "savings",
      "label": "Personal Savings"
    }
  },
  "name": "My account at 3rdParty Bank",
  "type": "savings",
  "ifxType": "SDA",
  "state": "active",
  "primaryUserName": "Lucille Wellphunded",
  "verifiedAt": "2018-01-20T18:13:33.375Z",
  "createdAt": "2018-01-20T05:54:52.375Z",
  "institutionName": "3rdParty Bank",
  "routingNumber": "021000021",
  "accountNumbers": {
    "masked": "*************3210"
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this external account

PATCH /externalAccounts/{externalAccountId}

Perform a partial update of this external account. Fields which are omitted from the request are not updated. Nested _embedded and _links are ignored if included. Bank users may only update the routingNumber and accountNumbers.full and institutionName and type if the external account is still pending. If accountNumbers.full is patched, then the full account number is included in the response. This operation does not change the state property. To change the state of the account, use the POST operations activateAccount, deactivateAccount, freezeAccount, closeAccount, reviewExternalAccount, removeAccount, which are available in the _links on an account instance.

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "productType": {
      "_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
      "_profile": "https://api.apiture.com/schemas/products/productType/v1.0.0/profile.json",
      "name": "savings",
      "label": "Personal Savings"
    }
  },
  "name": "My account at 3rdParty Bank",
  "type": "savings",
  "ifxType": "SDA",
  "state": "active",
  "primaryUserName": "Lucille Wellphunded",
  "verifiedAt": "2018-01-20T18:13:33.375Z",
  "createdAt": "2018-01-20T05:54:52.375Z",
  "institutionName": "3rdParty Bank",
  "routingNumber": "021000021",
  "accountNumbers": {
    "masked": "*************3210"
  }
}

Parameters

Parameter Description
externalAccountId
(path)
string (required)
The unique identifier of this external account. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource.
body
(body)
externalAccount (required)

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "productType": {
      "_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
      "_profile": "https://api.apiture.com/schemas/products/productType/v1.0.0/profile.json",
      "name": "savings",
      "label": "Personal Savings"
    }
  },
  "name": "My account at 3rdParty Bank",
  "type": "savings",
  "ifxType": "SDA",
  "state": "active",
  "primaryUserName": "Lucille Wellphunded",
  "verifiedAt": "2018-01-20T18:13:33.375Z",
  "createdAt": "2018-01-20T05:54:52.375Z",
  "institutionName": "3rdParty Bank",
  "routingNumber": "021000021",
  "accountNumbers": {
    "masked": "*************3210"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: externalAccount
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such external account resource at the specified {externalAccountId} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
409 Conflict
Conflict. the request attempted to change the state in an incompatible way, such as an attempt to change the state from active to pending or to change the name to a name that is already in use by another external account that the user or organization holds.
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this external account resource.

deleteExternalAccount

Code samples

# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Delete this external account resource

DELETE /externalAccounts/{externalAccountId}

Delete this external account resource and any resources that are owned by it. Note that only pending accounts may be deleted. Once an account has been activated, it cannot be deleted, only inactivated or removed from use.

Parameters

Parameter Description
If-Match
(header)
string
The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource.
externalAccountId
(path)
string (required)
The unique identifier of this external account. This is an opaque string.

Try It

Example responses

404 Response

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
StatusDescription
404 Not Found
Not Found. There is no such external account resource at the specified {externalAccountId} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
409 Conflict
Conflict. the request attempted to change the state in an incompatible way, such as an attempt to change the state from active to pending or to change the name to a name that is already in use by another external account that the user or organization holds.
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Account Owners

Personal Account Owners

getExternalAccountOwners

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a list of external account owners

GET /externalAccounts/{externalAccountId}/accountOwners

Return a list of the external account's account owners (holders). The result may be empty if the data was not available when user created the external account or the account aggregator provider does not provide this information.

Parameters

Parameter Description
externalAccountId
(path)
string (required)
The unique identifier of this external account. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try It

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/accounts/externalAccountOwners/v1.0.0/profile.json",
  "accountOwners": [
    {
      "firstName": "Steven",
      "middleName": "Benjamin",
      "lastName": "Storey",
      "fullName": "Steven B. Storey",
      "type": "primary"
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: externalAccountOwners
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such external account resource at the specified {externalAccountId} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be be provided with the If-None-Match on subsequent requests.

getOwners

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch the primary and joint owners of an account

GET /accounts/{accountId}/owners

Return a HAL representation of the array of the account owners for personal accounts. There is one primary owner and zero or more joint owners. Bank customers cannot directly change this set; only the bank system or admins can change owners. Existing primary or joint owners may invite other joint owners via the Invitations API.

For business accounts, refer to the owningBusiness in the account resource's embedded objects.

Parameters

Parameter Description
accountId
(path)
string (required)
The unique identifier of this account. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.
unmasked
(query)
boolean
When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true, to request that the response body includes the full account number. Such requests are auditable.

Try It

Example responses

200 Response

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
      "customerId": "00047294723672",
      "type": "joint",
      "role": "Chief Financial Officer",
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith",
      "taxId": "111-11-1111",
      "citizen": true,
      "addresses": [
        {
          "_id": "ha5",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "id": "wa0",
          "type": "other",
          "label": "mailing",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "preferredMailingAddressId": "ha5",
      "emailAddress": "JohnDanielSmith@example.com"
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: owners
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such account resource at the specified {accountId}. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource.

updateOwners

Code samples

# You can also use wget
curl -X PUT https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
      "customerId": "00047294723672",
      "type": "joint",
      "role": "Chief Financial Officer",
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith",
      "taxId": "111-11-1111",
      "citizen": true,
      "addresses": [
        {
          "_id": "ha5",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "id": "wa0",
          "type": "other",
          "label": "mailing",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "preferredMailingAddressId": "ha5",
      "emailAddress": "JohnDanielSmith@example.com"
    }
  ]
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update the owners of this account

PUT /accounts/{accountId}/owners

Update the array of the primary and joint owners on a personal account. Each owner in the request must be a verified user. This operation completely replaces the set of owners. This operation applies only to personal accounts. The new owners must have exactly one primary owner and may have additional joint owners.

Only financial institutions may update owners; this occurs after an existing owner or the person who created the personal account has invited other users and those verified users have accepted the invitation.

Body parameter

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
      "customerId": "00047294723672",
      "type": "joint",
      "role": "Chief Financial Officer",
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith",
      "taxId": "111-11-1111",
      "citizen": true,
      "addresses": [
        {
          "_id": "ha5",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "id": "wa0",
          "type": "other",
          "label": "mailing",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "preferredMailingAddressId": "ha5",
      "emailAddress": "JohnDanielSmith@example.com"
    }
  ]
}

Parameters

Parameter Description
accountId
(path)
string (required)
The unique identifier of this account. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource.
body
(body)
owners (required)
The array of owners.

Try It

Example responses

200 Response

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
      "customerId": "00047294723672",
      "type": "joint",
      "role": "Chief Financial Officer",
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith",
      "taxId": "111-11-1111",
      "citizen": true,
      "addresses": [
        {
          "_id": "ha5",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "id": "wa0",
          "type": "other",
          "label": "mailing",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "preferredMailingAddressId": "ha5",
      "emailAddress": "JohnDanielSmith@example.com"
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: owners
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such account resource at the specified {accountId}. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity

Unprocessable Entity. Invalid data in the request to update an accounts owners:

  • A person appears more than once (based on their tax identification)
  • A user is not an invited, verified digital banking user
  • The array is empty or contains more users than is allowed by the FI
  • The request does not specify exactly one primary owner
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource.

Account Beneficiaries

Personal Account Beneficiaries

getBeneficiaries

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch the account's beneficiaries

GET /accounts/{accountId}/beneficiaries

Return a HAL representation of the array of the account beneficiaries.

Parameters

Parameter Description
accountId
(path)
string (required)
The unique identifier of this account. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try It

Example responses

200 Response

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "type": "organization",
      "percent": 40,
      "organization": {
        "name": "Doctors Without Borders USA",
        "label": "Doctors Without Borders",
        "type": "nonProfit",
        "subtype": "charitableTrust",
        "identification": {
          "type": "taxId",
          "value": "13-3433452"
        },
        "addresses": [
          {
            "type": "headquarters",
            "addressLine1": "40 Rector St.",
            "addressLine2": "16th Floor",
            "city": "New York",
            "regionCode": "NY",
            "postalCode": 10006
          }
        ]
      }
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: beneficiaries
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such account resource at the specified {accountId}, or the account type does not support beneficiaries. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource.

patchBeneficiaries

Code samples

# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "type": "organization",
      "percent": 40,
      "organization": {
        "name": "Doctors Without Borders USA",
        "label": "Doctors Without Borders",
        "type": "nonProfit",
        "subtype": "charitableTrust",
        "identification": {
          "type": "taxId",
          "value": "13-3433452"
        },
        "addresses": [
          {
            "type": "headquarters",
            "addressLine1": "40 Rector St.",
            "addressLine2": "16th Floor",
            "city": "New York",
            "regionCode": "NY",
            "postalCode": 10006
          }
        ]
      }
    }
  ]
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create or Update the account's beneficiaries

PATCH /accounts/{accountId}/beneficiaries

Create or update the array of the beneficiaries for this account. Beneficiaries may be individuals, or a trust or charity. If the array contains only one item, it's percentage is automatically set to 100%.

When updating an existing set of beneficiaries, null values in the items array or omitted objects (such as individual or organization) inside the items are ignored: the beneficiary corresponding to a null item is not changed. For example, the client may omit the type, individual, and organization properties in the items array in order to adjust just the percentages:

[ { 'percentage': 20 }, { 'percentage': 30 }, { 'percentage' : 20 }, null, null ]

will change just the percentages of the first three beneficiaries and not update their other data for any of the five beneficiaries;

The beneficiaries list is truncated to the size of the items array. For example: if there were five beneficiaries, and the request body contains only three items, the last two are removed from the accounts beneficiaries array (The new total must still total 100%.)

This operation applies only to personal accounts.

Body parameter

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "type": "organization",
      "percent": 40,
      "organization": {
        "name": "Doctors Without Borders USA",
        "label": "Doctors Without Borders",
        "type": "nonProfit",
        "subtype": "charitableTrust",
        "identification": {
          "type": "taxId",
          "value": "13-3433452"
        },
        "addresses": [
          {
            "type": "headquarters",
            "addressLine1": "40 Rector St.",
            "addressLine2": "16th Floor",
            "city": "New York",
            "regionCode": "NY",
            "postalCode": 10006
          }
        ]
      }
    }
  ]
}

Parameters

Parameter Description
accountId
(path)
string (required)
The unique identifier of this account. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource.
body
(body)
beneficiaries (required)
The array of account beneficiaries.

Try It

Example responses

200 Response

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "type": "organization",
      "percent": 40,
      "organization": {
        "name": "Doctors Without Borders USA",
        "label": "Doctors Without Borders",
        "type": "nonProfit",
        "subtype": "charitableTrust",
        "identification": {
          "type": "taxId",
          "value": "13-3433452"
        },
        "addresses": [
          {
            "type": "headquarters",
            "addressLine1": "40 Rector St.",
            "addressLine2": "16th Floor",
            "city": "New York",
            "regionCode": "NY",
            "postalCode": 10006
          }
        ]
      }
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: beneficiaries
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
400 Bad Request
Bad Request. The beneficiary data is invalid or percentages to not total 100%.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such account resource at the specified {accountId}. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
409 Conflict
Conflict. Beneficiaries can only be assigned to personal accounts.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource.

Authorized Signers

Business Account Authorized Signers

getAuthorizedSigners

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch the business account's authorized signers

GET /accounts/{accountId}/authorizedSigners

Return a HAL representation of the array of the account's authorized signers.

This operation applies only to business accounts.

Parameters

Parameter Description
accountId
(path)
string (required)
The unique identifier of this account. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try It

Example responses

200 Response

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
      "customerId": "00047294723672",
      "type": "joint",
      "role": "Chief Financial Officer",
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith",
      "taxId": "111-11-1111",
      "citizen": true,
      "addresses": [
        {
          "_id": "ha5",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "id": "wa0",
          "type": "other",
          "label": "mailing",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "preferredMailingAddressId": "ha5",
      "emailAddress": "JohnDanielSmith@example.com"
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: authorizedSigners
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such account resource at the specified {accountId}. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource.

updateAuthorizedSigners

Code samples

# You can also use wget
curl -X PUT https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
      "customerId": "00047294723672",
      "type": "joint",
      "role": "Chief Financial Officer",
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith",
      "taxId": "111-11-1111",
      "citizen": true,
      "addresses": [
        {
          "_id": "ha5",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "id": "wa0",
          "type": "other",
          "label": "mailing",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "preferredMailingAddressId": "ha5",
      "emailAddress": "JohnDanielSmith@example.com"
    }
  ]
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update the authorized signers of an account

PUT /accounts/{accountId}/authorizedSigners

Update the array of the authorized signers. Each signer must be a verified user. This operation completely replaces the set of signers. Only financial institutions may update authorized signers; this occurs after an existing authorized signer or the person who created the business account has invited other users and those verified users have accepted the invitation.

This operation applies only to business accounts.

Body parameter

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
      "customerId": "00047294723672",
      "type": "joint",
      "role": "Chief Financial Officer",
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith",
      "taxId": "111-11-1111",
      "citizen": true,
      "addresses": [
        {
          "_id": "ha5",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "id": "wa0",
          "type": "other",
          "label": "mailing",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "preferredMailingAddressId": "ha5",
      "emailAddress": "JohnDanielSmith@example.com"
    }
  ]
}

Parameters

Parameter Description
accountId
(path)
string (required)
The unique identifier of this account. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource.
body
(body)
authorizedSigners (required)
The array of authorized signers.

Try It

Example responses

200 Response

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
      "customerId": "00047294723672",
      "type": "joint",
      "role": "Chief Financial Officer",
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith",
      "taxId": "111-11-1111",
      "citizen": true,
      "addresses": [
        {
          "_id": "ha5",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "id": "wa0",
          "type": "other",
          "label": "mailing",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "preferredMailingAddressId": "ha5",
      "emailAddress": "JohnDanielSmith@example.com"
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: authorizedSigners
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such account resource at the specified {accountId}. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity

Unprocessable Entity. Invalid data in the request to update an account's authorized signers:

  • A person appears more than once (based on their tax identification)
  • A user is not an invited, verified digital banking user
  • The array is empty or contains more users than is allowed by the FI
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource.

API

The Accounts API

getApi

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/ \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY'

GET https://api.devbank.apiture.com/accounts/ HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY'

};

fetch('https://api.devbank.apiture.com/accounts/',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY'
}

r = requests.get('https://api.devbank.apiture.com/accounts/', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Top-level resources and operations in this API

GET /

Return links to the top-level resources and operations in this API. This API returns the following links:

Try It

Example responses

OK

{
  "id": "accounts",
  "name": "User Bank Accounts",
  "apiVersion": "0.3.0",
  "_profile": "https://api.apiture.com/schemas/common/root/v.0.1.0/profile.json",
  "_links": {
    "apiture:accounts": {
      "href": "/accounts/accounts"
    },
    "apiture:externalAccounts": {
      "href": "/accounts/externalAccounts"
    }
  }
}

200 Response

{
  "id": "apiName",
  "name": "API name",
  "apiVersion": "1.0.0",
  "_profile": "https://production.api.apiture.com/schemas/common/root/v2.0.0/profile.json",
  "_links": {}
}

Responses

StatusDescription
200 OK
OK
Schema: root

getApiDoc

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/apiDoc \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

GET https://api.devbank.apiture.com/accounts/apiDoc HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/apiDoc',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY'

};

fetch('https://api.devbank.apiture.com/accounts/apiDoc',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'API-Key' => 'API_KEY'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/apiDoc',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'API-Key': 'API_KEY'
}

r = requests.get('https://api.devbank.apiture.com/accounts/apiDoc', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/apiDoc");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "API-Key": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/apiDoc", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return API definition document

GET /apiDoc

Return the OpenAPI document that describes this API.

Try It

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline

Response Schema

getLabels

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/labels \
  -H 'Accept: application/hal+json' \
  -H 'Accept-Language: string' \
  -H 'API-Key: API_KEY'

GET https://api.devbank.apiture.com/accounts/labels HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
Accept-Language: string

var headers = {
  'Accept':'application/hal+json',
  'Accept-Language':'string',
  'API-Key':'API_KEY'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/labels',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'Accept-Language':'string',
  'API-Key':'API_KEY'

};

fetch('https://api.devbank.apiture.com/accounts/labels',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Accept-Language' => 'string',
  'API-Key' => 'API_KEY'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/labels',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Accept-Language': 'string',
  'API-Key': 'API_KEY'
}

r = requests.get('https://api.devbank.apiture.com/accounts/labels', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/labels");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Accept-Language": []string{"string"},
        "API-Key": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/labels", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Localized Labels

GET /labels

Return a JSON object which defines labels for enumeration types defined by the schemas defined in this API.

The labels in the response may not all match the requested language; some may be in the default language (en-us).

Parameters

Parameter Description
Accept-Language
(header)
string
The weighted language tags which indicate the user's preferred natural language for the localized labels in the response, as per RFC 7231.

Try It

Example responses

200 Response

{
  "property1": {
    "label": "Limited Liability Corporation",
    "description": "string",
    "language": "en-us",
    "code": "31"
  },
  "property2": {
    "label": "Limited Liability Corporation",
    "description": "string",
    "language": "en-us",
    "code": "31"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: localizedLabels

Configuration

getConfigurationGroups

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/accounts/configurations/groups HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/configurations/groups',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/configurations/groups',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a collection of configuration groups

GET /configurations/groups

Return a paginated sortable filterable searchable collection of configuration groups. The links in the response include pagination links.

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first configuration group item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of configuration group representations to return in this page.
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.

Try It

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/configurations/configurationGroups/v2.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "configurationGroups",
  "_links": {
    "self": {
      "href": "/configurations/configurations/groups?start=10&limit=10"
    },
    "first": {
      "href": "/configurations/configurations/groups?start=0&limit=10"
    },
    "next": {
      "href": "/configurations/configurations/groups?start=20&limit=10"
    },
    "collection": {
      "href": "/configurations/configurations/groups"
    }
  },
  "_embedded": {
    "items": [
      {
        "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/configurations/groups/basic"
          }
        },
        "name": "basic",
        "label": "Basic Settings",
        "description": "The basic settings for the Transfers API"
      },
      {
        "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/configurations/groups/calendar"
          }
        },
        "name": "calendar",
        "label": "Calendar",
        "description": "A calendar that specifies which dates are valid for performing transfers (e.g., weekdays excluding federal holidays)"
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: configurationGroups
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

getConfigurationGroup

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this configuration group

GET /configurations/groups/{groupName}

Return a HAL representation of this configuration group resource.

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try It

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/configurations/groups/basic"
    }
  },
  "name": "basic",
  "label": "Basic Settings",
  "description": "The basic settings for the Transfers API",
  "schema": {
    "type": "object",
    "properties": {
      "dailyLimit": {
        "type": "number",
        "description": "The daily limit for the number of transfers"
      },
      "cutoffTime": {
        "type": "string",
        "format": "time",
        "description": "The cutoff time for scheduling transfers for the current day"
      }
    }
  },
  "values": {
    "dailyLimit": 5,
    "cutoffTime": "17:30:00"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: configurationGroup
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-None-Match request header for GET operations for this configuration group resource.

getConfigurationGroupSchema

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch the schema for this configuration group

GET /configurations/groups/{groupName}/schema

Return a HAL representation of this configuration group schema resource.

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try It

Example responses

200 Response

{
  "type": "object",
  "properties": {
    "dailyLimit": {
      "type": "number",
      "description": "The daily limit for the number of transfers"
    },
    "cutoffTime": {
      "type": "string",
      "format": "time",
      "description": "The cutoff time for scheduling transfers for the current day"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: configurationSchema
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT

getConfigurationGroupValues

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch the values for the specified configuration group

GET /configurations/groups/{groupName}/values

Return a representation of this configuration group values resource.

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try It

Example responses

200 Response

{
  "dailyLimit": 5,
  "cutoffTime": "17:30:00"
}

Responses

StatusDescription
200 OK
OK
Schema: configurationValues
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT

updateConfigurationGroupValues

Code samples

# You can also use wget
curl -X PUT https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "dailyLimit": 5,
  "cutoffTime": "17:30:00"
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update the values for the specified configuration group

PUT /configurations/groups/{groupName}/values

Perform a complete replacement of this set of values

Body parameter

{
  "dailyLimit": 5,
  "cutoffTime": "17:30:00"
}

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource.
body
(body)
configurationValues (required)

Try It

Example responses

200 Response

{
  "type": "object",
  "properties": {
    "dailyLimit": {
      "type": "number",
      "description": "The daily limit for the number of transfers"
    },
    "cutoffTime": {
      "type": "string",
      "format": "time",
      "description": "The cutoff time for scheduling transfers for the current day"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: configurationSchema
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
403 Forbidden
Access denied. Only user allowed to update configurations is an admin.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT

getConfigurationGroupValue

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName} \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a single value associated with the specified configuration group

GET /configurations/groups/{groupName}/values/{valueName}

Fetch a single value associated with this configuration group. This provides convenient access to individual values of the configuration group.

The response is always a JSON value which can be parsed with a strict JSON parser. The response may be

Examples:

To update a specific value, use PUT /accounts/configurations/groups/{groupName}/values/{valueName} (operation updateConfigurationGroupValue).

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
valueName
(path)
string (required)
The unique name of a value in a configuration group. This is the name of the value in the schema. A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']*

Try It

Example responses

200 Response

"string"

Responses

StatusDescription
200 OK
OK. The value of the named configuration value as a JSON string, number, boolean, array, or object.
Schema: string
StatusDescription
404 Not Found
Not Found. There is either no such configuration group resource at the specified {groupName} or no such value at the specified {valueName}. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this configuration group resource.

updateConfigurationGroupValue

Code samples

# You can also use wget
curl -X PUT https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = 'string';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update a single value associated with the specified configuration group

PUT /configurations/groups/{groupName}/values/{valueName}

Update a single value associated with this configuration group. This provides convenient access to individual values of the configuration group as defined in the configuration group's schema. The request body must conform to the configuration group's schema for the named {valueName}. This operation is idempotent.

The request body must be a JSON value which can be parsed with a strict JSON parser. The response may be

Examples:

To fetch specific value, use GET /accounts/configurations/groups/{groupName}/values/{valueName} (operation getConfigurationGroupValue).

Body parameter

"string"

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
valueName
(path)
string (required)
The unique name of a value in a configuration group. This is the name of the value in the schema. A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']*
body
(body)
string (required)
The request body must a valid JSON value and should be parsable with a JSON parser. The result may be a string, number, boolean, array, or object.

Try It

Example responses

200 Response

"string"

Responses

StatusDescription
200 OK
OK
Schema: string
StatusDescription
403 Forbidden
Access denied. Only user allowed to update configurations is an admin.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this configuration group resource.

Schemas

accountNumbers

{
  "masked": "*************3210",
  "full": "9876543210"
}

Account Numbers (Version v1.0.0)

Different representations of an account number.

Properties

NameDescription
masked string
A partial account number that does not contain all the digits of the full account number. This masked number appears in statements or in user experience presentation. It is sufficient for a user to differentiate this account from other accounts they hold, but is not sufficient for initiating transfers, etc. The first character is the mask character and is repeated; this does not indicate that the full account number is the same as the mask length. This value is derived and immutable.
read-only
minLength: 8
maxLength: 32
full string
The full account number. This value only appears when ?unmasked=true is passed on the GET request. Not included in the summary representation of the account that is included in account collection responses. This value is derived and immutable.
read-only
minLength: 4
maxLength: 17

externalAccountNumbers

{
  "masked": "*************3210",
  "full": "9876543210"
}

External Account Numbers (Version v1.0.0)

The account numbers necessary to link an external account.

Properties

NameDescription
masked string
A partial account number that does not contain all the digits of the full account number. This masked number appears in statements or in user experience presentation. It is sufficient for a user to differentiate this account from other accounts they hold, but is not sufficient for initiating transfers, etc. The first character is the mask character and is repeated; this does not indicate that the full account number is the same as the mask length. This value is included when accounts are embedded in collections or other resources. This value is derived and immutable.
read-only
minLength: 8
maxLength: 32
full string
The full account number. This value only appears when ?unmasked=true is passed on the GET request for an account. Not included in the summary representation of the account that is included in account collection responses. Pass in this value when linking an external account. This field can be updated whenever the account is still in the pending state.
minLength: 4
maxLength: 17

createExternalAccountNumbers

{
  "full": "9876543210"
}

Create External Account Numbers (Version v1.0.0)

The account numbers necessary to link an external account.

Properties

NameDescription
full string (required)
The full account number. Pass in this value when linking an external account. This field can be updated whenever the account is still in the pending state.
minLength: 4
maxLength: 17

summaryExternalAccount

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "My account at 3rdParty Bank",
  "type": "savings",
  "ifxType": "SDA",
  "state": "active",
  "verifiedAt": "2018-01-20T18:13:33.375Z",
  "createdAt": "2018-01-20T05:54:52.375Z",
  "routingNumber": "021000021",
  "accountNumbers": {
    "masked": "*************3210"
  },
  "institutionName": "3rd Party Bank",
  "primaryUserName": "Lana Michaels"
}

External Account Summary (Version v1.0.0)

Summary representation of an external account resource in external accounts collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
name string
The user-assigned name of this external account
maxLength: 128
description string
The user-assigned description of this external account.
maxLength: 4096
institutionName string
The name of the financial institution.
minLength: 2
maxLength: 128
primaryUserName string
The primary user or owner of the external account.
maxLength: 128
title string
The name of the account holder. This is derived from the user resource.
maxLength: 512
type string
The type of account. This is the name of an external product type associated with this external account. (The product type is defined in the Products API.)
ifxType ifxType
A code which identifies the product type. This is one of the IFX AcctType values.
routingNumber string
The account routing number which identifies the financial institution. The full routing number and full account number are required to fully identify the account.
minLength: 9
maxLength: 9
state externalAccountState
The state of the external account.
read-only
verifiedAt string(date-time)
The date-time when the external account was most recently verified. This is in RFC 3339 format, UTC.
attributes attributes
An optional map of name/value pairs which contains additional dynamic data about the resource.
_id string
The unique identifier for this external account resource. This is an immutable opaque string.
read-only
createdAt string(date-time)
The date-time when the external account was created. This is in RFC 3339format, UTC. This is derived and immutable.
accountNumbers externalAccountNumbers
The masked and full account number

createExternalAccount

{
  "_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
  "name": "My account at 3rdParty Bank",
  "institutionName": "3rd Party Bank",
  "primaryUserName": "Lana Michaels",
  "type": "savings",
  "ifxType": "SDA",
  "routingNumber": "021000021",
  "accountNumbers": {
    "full": "9876543210"
  },
  "_links": {
    "apiture:user": {
      "href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
    },
    "apiture:productType": {
      "href": "/products/productTypes/a93c19ba-f96d-4b30-8dd7-92b2d6ffcb0b"
    }
  }
}

Create External Account (Version v1.0.0)

Representation used to create a new external account. The request should include a apiture:productType link to a product type.

Properties

NameDescription
name string (required)
The user-assigned name of this external account
maxLength: 128
description string
The user-assigned description of this external account.
maxLength: 4096
institutionName string (required)
The name of the financial institution.
minLength: 2
maxLength: 128
primaryUserName string
The primary user or owner of the external account.
maxLength: 128
title string
The name of the account holder. This is derived from the user resource.
maxLength: 512
type string (required)
The type of account. This is the name of an external product type associated with this external account. (The product type is defined in the Products API.)
ifxType ifxType
A code which identifies the product type. This is one of the IFX AcctType values.
routingNumber string (required)
The account routing number which identifies the financial institution. The full routing number and full account number are required to fully identify the account.
minLength: 9
maxLength: 9
state externalAccountState
The state of the external account.
read-only
verifiedAt string(date-time)
The date-time when the external account was most recently verified. This is in RFC 3339 format, UTC.
attributes attributes
An optional map of name/value pairs which contains additional dynamic data about the resource.
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded createExternalAccountEmbeddedObjects
Embedded objects.
_profile string(uri)
The URI of a resource profile which describes the representation.
accountNumbers createExternalAccountNumbers (required)
The masked and full account number

externalAccount

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "productType": {
      "_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
      "_profile": "https://api.apiture.com/schemas/products/productType/v1.0.0/profile.json",
      "name": "savings",
      "label": "Personal Savings"
    }
  },
  "name": "My account at 3rdParty Bank",
  "type": "savings",
  "ifxType": "SDA",
  "state": "active",
  "primaryUserName": "Lucille Wellphunded",
  "verifiedAt": "2018-01-20T18:13:33.375Z",
  "createdAt": "2018-01-20T05:54:52.375Z",
  "institutionName": "3rdParty Bank",
  "routingNumber": "021000021",
  "accountNumbers": {
    "masked": "*************3210"
  }
}

External Account (Version v1.0.0)

Representation of an external account resource, a banking account held by another financial institution.

The _links on an external account may include the following, depending on the state of the account: self - The link to the external account. apiture:activate - Activate the account (POST). apiture:deactivate - Deactivate the account (POST). apiture:freeze - Freeze the account (POST). apiture:close - Close the account (POST). apiture:review - Under review the account (POST).

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded externalAccountEmbeddedObjects
Embedded objects to include within an external account's _embedded object, as selected with the embed query parameter on the getExternalAccounts operation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
name string
The user-assigned name of this external account
maxLength: 128
description string
The user-assigned description of this external account.
maxLength: 4096
institutionName string
The name of the financial institution.
minLength: 2
maxLength: 128
primaryUserName string
The primary user or owner of the external account.
maxLength: 128
title string
The name of the account holder. This is derived from the user resource.
maxLength: 512
type string
The type of account. This is the name of an external product type associated with this external account. (The product type is defined in the Products API.)
ifxType ifxType
A code which identifies the product type. This is one of the IFX AcctType values.
routingNumber string
The account routing number which identifies the financial institution. The full routing number and full account number are required to fully identify the account.
minLength: 9
maxLength: 9
state externalAccountState
The state of the external account.
read-only
verifiedAt string(date-time)
The date-time when the external account was most recently verified. This is in RFC 3339 format, UTC.
attributes attributes
An optional map of name/value pairs which contains additional dynamic data about the resource.
_id string
The unique identifier for this external account resource. This is an immutable opaque string.
read-only
createdAt string(date-time)
The date-time when the external account was created. This is in RFC 3339format, UTC. This is derived and immutable.
accountNumbers externalAccountNumbers
The masked and full account number

externalAccountSummaries

{
  "items": [
    {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
        }
      },
      "name": "My account at 3rdParty Bank",
      "type": "savings",
      "ifxType": "SDA",
      "state": "active",
      "verifiedAt": "2018-01-20T18:13:33.375Z",
      "createdAt": "2018-01-20T05:54:52.375Z",
      "routingNumber": "021000021",
      "accountNumbers": {
        "masked": "*************3210"
      },
      "institutionName": "3rd Party Bank",
      "primaryUserName": "Lana Michaels"
    }
  ]
}

External Account Summaries (Version v1.0.0)

A page of embedded external account summaries.

Properties

NameDescription
items [summaryExternalAccount] (required)
An array containing a page of external account items.

externalAccounts

{
  "_profile": "https://api.apiture.com/schemas/accounts/externalAccounts/v1.0.0/profile.json",
  "start": "10",
  "limit": 10,
  "count": 67,
  "name": "external accounts",
  "_links": {
    "self": {
      "href": "/accounts/externalAccounts?start=10&limit=10"
    },
    "first": {
      "href": "/accounts/externalAccounts?start=0&limit=10"
    },
    "next": {
      "href": "/accounts/externalAccounts?start=20&limit=10"
    },
    "collection": {
      "href": "/accounts/externalAccounts"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "name": "My account at 3rdParty Bank",
        "_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
        "type": "savings",
        "ifxType": "SDA",
        "state": "active",
        "primaryUserName": "Lucille Wellphunded",
        "institutionName": "3rdParty Bank",
        "verifiedAt": "2018-01-20T18:13:33.375Z",
        "createdAt": "2018-01-20T05:54:52.375Z",
        "routingNumber": "021000021",
        "accountNumbers": {
          "masked": "*************3210"
        },
        "_links": {
          "self": {
            "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        }
      }
    ]
  }
}

External Account Collection (Version v1.0.0)

Collection of external accounts. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection).

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded any (required)

allOf (Version v1.0.0)

Collection of external accounts. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection).

NameDescription
» anonymous externalAccountSummaries
A page of embedded external account summaries.

and (Version v1.0.0)

Collection of external accounts. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection).

NameDescription
» anonymous externalAccountEmbeddedObjects
Embedded objects to include within an external account's _embedded object, as selected with the embed query parameter on the getExternalAccounts operation.

continued (Version v1.0.0)

Collection of external accounts. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection).

NameDescription
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

externalAccountOwners

{
  "_profile": "https://api.apiture.com/schemas/accounts/externalAccountOwners/v1.0.0/profile.json",
  "accountOwners": [
    {
      "firstName": "Steven",
      "middleName": "Benjamin",
      "lastName": "Storey",
      "fullName": "Steven B. Storey",
      "type": "primary"
    }
  ]
}

External Account Owners (Version v1.0.0)

A (possibly empty) list of external account owners. Since this is a small finite set, this is not a paginated collection, just an array.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
accountOwners [externalAccountOwner]
The array of account owners. This may be an empty array (0 items) but is always present.

externalAccountOwner

{
  "firstName": "Steven",
  "middleName": "Benjamin",
  "lastName": "Storey",
  "fullName": "Steven B. Storey",
  "type": "primary"
}

External Account Owner (Version v1.0.0)

An external account owner. Since this is a small finite set, this is not a paginated collection, just an array.

Properties

NameDescription
firstName string
The person's first name (or given name).
middleName string
The person's middle name.
lastName string
The person's last name (or surname).
fullName string
The account owner's full name (first name and last name).
maxLength: 128
type authorizationType
The account owner's ownership type.

summaryAccount

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    }
  },
  "name": "My savings",
  "description": "My Basic savings account",
  "routingNumber": "021000021",
  "institutionName": "Canapi Bank",
  "state": "active",
  "title": "John Smith",
  "ifxType": "SDA",
  "allowsTransfers": true,
  "accountNumbers": {
    "full": "9876543210",
    "masked": "*************3210"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "currency": "USD"
  },
  "rates": {
    "apy": "1.410",
    "nominal": "1.400"
  },
  "rate": {
    "value": "1.40",
    "type": "apr"
  },
  "openedAt": {}
}

Account Summary (Version v1.1.0)

Summary representation of an account resource in accounts collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

By default, not all account fields are set when paging through accounts via the collection. The following fields are not set unless the collection request includes ?fields=*:

Additionally, the summaryAccount representation does not support the full set of links or the nested owners, beneficiaries, and authorized signers available in the account schema returned by the getAccount operation (GET /accounts/{accountId}).

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
name string
The user-assigned name of this account.
minLength: 1
maxLength: 128
description string
The user-assigned description of this account.
minLength: 1
maxLength: 4096
interestPolicy string
How interest credits on the account (if any) are disbursed. This field is none for non-interest bearing accounts. If this is transfer, the apiture:interestTargetAccount link in the account's _link references the target account for the disbursements. This field applies if the account is a time deposit (CD) account.


Enumerated values:
none
capitalize
transfer

_id string
The unique identifier for this account resource. This is an immutable opaque string.
read-only
state internalAccountState
The state of the internal account.
read-only
title string
The name of the account holder. This is derived from the user resource.
maxLength: 512
productName string
The name of the banking product that this account is an instance of. This is derived from the product resource.
read-only
minLength: 1
maxLength: 128
type string
The name of the banking product type. This is derived from the product resource. The subtype is more specific; type is a broad account category.
read-only
minLength: 1
maxLength: 128
subtype string
The name of the banking product sub type. This is derived from the product resource. This is more specific than the type.
read-only
minLength: 1
maxLength: 128
ifxType ifxType
A code which identifies the product type. This is one of the IFX AcctType values.
accountNumbers accountNumbers
Different representations of the account number.
balance balance
The account balance.
read-only
allowsTransfers boolean
If true, the account is open to deposits and credits such as transfers or rollovers.
read-only
openedAt string(date-time)
The date-time the account was opened. This is an RFC 3339 UTC time stamp.
read-only
interest interest
Interest disbursement settings for the account.
timeDeposit timeDeposit
Time deposit options for the account.
cycleWithdrawalCount integer
The number of withdrawals made against this account within the current statement cycle. For some deposit accounts such as savings accounts, this is limited to a maximum defined in the corresponding product's constraints. If exceeded over multiple statement cycles, the financial institution may convert the account to a demand deposit (checking) account.
read-only
rates summaryInterestRates
The account's rates of return (for deposit account) or interest rate (for debit accounts).
read-only
rate rate
The account's rate of return (for deposit accounts) or interest rate (for debit accounts). Note: This property is deprecated. Please use the rates object.
read-only

createAccount

{
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "name": "My car savings account",
  "description": "My savings account used to save for a new car, opened in 2019. I try to put $550/month into this account.",
  "_links": {
    "apiture:user": {
      "href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    },
    "apiture:organization": {
      "href": "/organizations/organizations/a1c9212c-0a5c-4779-a3fc-95e1c1e92e71"
    },
    "apiture:application": {
      "href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
    }
  }
}

Create Account (Version v1.0.0)

Representation used to create a new account. The request must contain a link to an active product, user, organization (for a business account) and, optionally, an approved account application; the account type and product are extracted from that product resource, and additional associations to people or organizations that should be attached to the account may come from the application, such as co-owners, owning business (if not passed in the apiture:organization link), etc. The product must be passed as apiture:product, user as apiture:user, organization as apiture:organization, and account application should be passed as the apiture:application link in _links in the request.

Interest-bearing accounts can either have interest disbursements capitalized (deposited into the account) or transferred to another internal account or an external account. This account is specified in the apiture:interestTargetAccount link in the request's _links. The account must be active and eligible for deposits/credits. This link can be updated in the updatedAccount or patchAccount operations.

An account for a time deposit account (Certificate of Deposit accounts) may also specify an apiture:rolloverProduct link at creation time. If this account rolls over into a new product at maturity, this link is the URI of the banking product for the rollover account (see the Products API). This is used if timeDeposit.maturityPolicy is rolloverPrincipalAndInterest or rolloverPrincipalAndTransferInterest.

Time deposit accounts may also specify an existing account (savings, checking) to transfer principal and/or interest to upon maturity in the apiture:transferTargetAccount link. The account must be an internal account which is active and available for deposits. This is used if timeDeposit.maturityPolicy is transferPrincipalAndInterest or rolloverPrincipalAndTransferInterest.

An apiture:user must be defined for specifying the owner of a non-business account and as an authorized signer of a business account.

Business accounts must specify the organization owning the account as an organization link, such as apiture:organization.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
name string
The user-assigned name of this account.
minLength: 1
maxLength: 128
description string
The user-assigned description of this account.
minLength: 1
maxLength: 4096
interestPolicy string
How interest credits on the account (if any) are disbursed. This field is none for non-interest bearing accounts. If this is transfer, the apiture:interestTargetAccount link in the account's _link references the target account for the disbursements. This field applies if the account is a time deposit (CD) account.


Enumerated values:
none
capitalize
transfer

account

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
  "name": "My 1y CD",
  "description": "My 1-year CD",
  "productName": "1 Year Basic Certificate of Deposit",
  "title": "John Smith",
  "routingNumber": "021000021",
  "institutionName": "Canapi Bank",
  "state": "active",
  "allowsTransfers": true,
  "accountNumbers": {
    "masked": "*************3210"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "pendingCredits": "3000.00",
    "pendingDebits": "1500.00",
    "currency": "USD"
  },
  "rate": {
    "value": "2.625",
    "type": "apr"
  },
  "rates": {
    "apy": "1.410",
    "apye": "1.415",
    "nominal": "1.400",
    "next": "1.400"
  },
  "openedAt": {},
  "type": "CD",
  "subtype": "Basic CD",
  "ifxType": "CDA",
  "interest": {
    "yearToDate": "30.12",
    "sinceOpening": "44.80"
  },
  "timeDeposit": {
    "maturesAt": "2019-10-30T08:16:00.000Z",
    "term": "P1D",
    "maturityPolicy": "rolloverPrincipalAndInterest",
    "rolloverProductName": "Basic Savings"
  },
  "cycleWithdrawalCount": 0,
  "_embedded": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
    }
  },
  "_links": {
    "self": {
      "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:product": {
      "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
    },
    "apiture:deactivate": {
      "href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:freeze": {
      "href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:close": {
      "href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:acceptApyOffer": {
      "href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:rolloverProduct": {
      "href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
    }
  }
}

Account (Version v1.1.0)

Representation of an account resource. A banking account, which is an instance of a banking product

A business account may have authorized signers, which are people authorized to perform banking operations on the account such as initiating funds transfers.

The _links on an external account may include the following, depending on the state of the account:

The apiture:rolloverProduct and apiture:transferTargetAccount links may be updated by the updateAccount and patchAccount operations. The owners are listed by the getOwners operation. The beneficiaries are listed and updated by the getBeneficiaries and patchBeneficiaries operations. The authorized signers are listed and updated by the getAuthorizedSigners and updateAuthorizedSigners operation.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded embeddedObjects
Embedded objects.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
name string
The user-assigned name of this account.
minLength: 1
maxLength: 128
description string
The user-assigned description of this account.
minLength: 1
maxLength: 4096
interestPolicy string
How interest credits on the account (if any) are disbursed. This field is none for non-interest bearing accounts. If this is transfer, the apiture:interestTargetAccount link in the account's _link references the target account for the disbursements. This field applies if the account is a time deposit (CD) account.


Enumerated values:
none
capitalize
transfer

_id string
The unique identifier for this account resource. This is an immutable opaque string.
read-only
state internalAccountState
The state of the internal account.
read-only
title string
The name of the account holder. This is derived from the user resource.
maxLength: 512
productName string
The name of the banking product that this account is an instance of. This is derived from the product resource.
read-only
minLength: 1
maxLength: 128
type string
The name of the banking product type. This is derived from the product resource. The subtype is more specific; type is a broad account category.
read-only
minLength: 1
maxLength: 128
subtype string
The name of the banking product sub type. This is derived from the product resource. This is more specific than the type.
read-only
minLength: 1
maxLength: 128
ifxType ifxType
A code which identifies the product type. This is one of the IFX AcctType values.
accountNumbers accountNumbers
Different representations of the account number.
balance balance
The account balance.
read-only
allowsTransfers boolean
If true, the account is open to deposits and credits such as transfers or rollovers.
read-only
openedAt string(date-time)
The date-time the account was opened. This is an RFC 3339 UTC time stamp.
read-only
interest interest
Interest disbursement settings for the account.
timeDeposit timeDeposit
Time deposit options for the account.
cycleWithdrawalCount integer
The number of withdrawals made against this account within the current statement cycle. For some deposit accounts such as savings accounts, this is limited to a maximum defined in the corresponding product's constraints. If exceeded over multiple statement cycles, the financial institution may convert the account to a demand deposit (checking) account.
read-only
rates interestRates
The account's rates of return (for deposit accounts) or interest rate (for debit accounts).
read-only
attributes attributes
An optional map of name/value pairs which contains additional dynamic data about the resource.
rate rate
The account's rate of return (for deposit accounts) or interest rate (for debit accounts). Note: This property is deprecated. Please use the rates object.
read-only

Representations using this account schema may contain the following links:

(Unknown)(Unknown)(Unknown)(Unknown)
RelSummaryMethod
selfFetch a representation of this accountGET
apiture:productTypeGET
apiture:ownersFetch the primary and joint owners of an accountGET
apiture:beneficiariesFetch the account's beneficiariesGET
apiture:authorizedSignersFetch the business account's authorized signersGET
apiture:activate(Unknown)
apiture:deactivate(Unknown)
apiture:freeze(Unknown)
apiture:close(Unknown)
apiture:rolloverProductGET
apiture:transferTargetAccountGET
apiture:interestTargetAccountGET
apiture:bumpApyRateBump the account's APY ratePOST

createExternalAccountEmbeddedObjects

{
  "accountOwners": [
    {
      "firstName": "Steven",
      "middleName": "Benjamin",
      "lastName": "Storey",
      "fullName": "Steven B. Storey",
      "type": "primary"
    }
  ]
}

External Account Embedded Objects (Version v1.0.0)

Optional embedded resources to include when creating an external account.

Properties

NameDescription
accountOwners [externalAccountOwner]
The array of account owners. This may be an empty array (0 items) but is always present.

externalAccountEmbeddedObjects

{
  "accountOwners": [
    {
      "firstName": "Steven",
      "middleName": "Benjamin",
      "lastName": "Storey",
      "fullName": "Steven B. Storey",
      "type": "primary"
    }
  ]
}

External Account Embedded Objects (Version v1.0.0)

Embedded objects to include within an external account's _embedded object, as selected with the embed query parameter on the getExternalAccounts operation.

Properties

NameDescription
accountOwners [externalAccountOwner]
The array of account owners.

embeddedObjects

{
  "owners": {
    "_links": {
      "property1": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      },
      "property2": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      }
    },
    "_embedded": {},
    "_profile": "http://example.com",
    "_error": {
      "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
      "message": "The value for deposit must be greater than 0.",
      "statusCode": 422,
      "type": "positiveNumberRequired",
      "attributes": {
        "value": -125.5
      },
      "remediation": "Provide a value which is greater than 0",
      "occurredAt": "2018-01-25T05:50:52.375Z",
      "_links": {
        "describedby": {
          "href": "https://developer.apiture.com/errors/positiveNumberRequired"
        }
      },
      "_embedded": {
        "errors": []
      }
    },
    "items": [
      {
        "userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
        "customerId": "00047294723672",
        "type": "joint",
        "role": "Chief Financial Officer",
        "firstName": "John",
        "middleName": "Daniel",
        "lastName": "Smith",
        "taxId": "111-11-1111",
        "citizen": true,
        "addresses": [
          {
            "_id": "ha5",
            "type": "home",
            "addressLine1": "555 N Front Street",
            "addressLine2": "Suite 5555",
            "city": "Wilmington",
            "regionCode": "NC",
            "postalCode": "28401-5405",
            "countryCode": "US"
          },
          {
            "id": "wa0",
            "type": "other",
            "label": "mailing",
            "addressLine1": "123 S 3rd Street",
            "addressLine2": "Apt 42",
            "city": "Wilmington",
            "regionCode": "NC",
            "postalCode": "28411-5405",
            "countryCode": "US"
          }
        ],
        "preferredMailingAddressId": "ha5",
        "emailAddress": "JohnDanielSmith@example.com"
      }
    ]
  },
  "beneficiaries": {
    "_links": {
      "property1": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      },
      "property2": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      }
    },
    "_embedded": {},
    "_profile": "http://example.com",
    "_error": {
      "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
      "message": "The value for deposit must be greater than 0.",
      "statusCode": 422,
      "type": "positiveNumberRequired",
      "attributes": {
        "value": -125.5
      },
      "remediation": "Provide a value which is greater than 0",
      "occurredAt": "2018-01-25T05:50:52.375Z",
      "_links": {
        "describedby": {
          "href": "https://developer.apiture.com/errors/positiveNumberRequired"
        }
      },
      "_embedded": {
        "errors": []
      }
    },
    "items": [
      {
        "type": "organization",
        "percent": 40,
        "organization": {
          "name": "Doctors Without Borders USA",
          "label": "Doctors Without Borders",
          "type": "nonProfit",
          "subtype": "charitableTrust",
          "identification": {
            "type": "taxId",
            "value": "13-3433452"
          },
          "addresses": [
            {
              "type": "headquarters",
              "addressLine1": "40 Rector St.",
              "addressLine2": "16th Floor",
              "city": "New York",
              "regionCode": "NY",
              "postalCode": 10006
            }
          ]
        }
      }
    ]
  },
  "owningBusiness": {
    "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
    "customerId": "000489353781",
    "_profile": "https://api.apiture.com/schemas/organizations/organization/v1.0.0/profile.json",
    "name": "Smith's Auto Detailing",
    "label": "Smith's Detailing",
    "tradeName": "Smith's Auto Detailing",
    "emailAddresses": [
      {
        "_id": "ea0",
        "type": "work",
        "value": "smitties-detailing@example.com"
      }
    ],
    "preferredEmailAddressId": "ea0",
    "phones": [
      {
        "type": "work",
        "number": "(555) 555-5555",
        "_id": "wp0"
      },
      {
        "type": "mobile",
        "number": "(999) 555-5555",
        "_id": "wp1"
      }
    ],
    "preferredPhoneNumberId": "wp0",
    "addresses": [
      {
        "type": "work",
        "addressLine1": "555 N Front Street",
        "addressLine2": "Suite 5555",
        "city": "Wilmington",
        "regionCode": "NC",
        "postalCode": "28401-5405",
        "countryCode": "US"
      },
      {
        "type": "work",
        "addressLine1": "123 S 3rd Street",
        "addressLine2": "Apt 42",
        "city": "Wilmington",
        "regionCode": "NC",
        "postalCode": "28411-5405",
        "countryCode": "US"
      }
    ],
    "preferredMailingAddressId": "wa0",
    "establishedDate": "2009-07-09T",
    "identification": [
      {
        "type": "taxId",
        "value": "00-9999999"
      }
    ],
    "state": "active",
    "governmentOwned": false,
    "registeredIn": "NC",
    "publiclyHeld": false,
    "smallBusiness": true,
    "taxExempt": false,
    "currency": "USD",
    "estimatedAnnualRevenue": "from1to10Million",
    "estimatedMonthlyAmounts": {
      "sentWire": "20000.00",
      "receivedWire": "30000.00",
      "mobileCheckDeposit": "250000.00",
      "receivedAch": "40000.00",
      "sentAch": "35000.00"
    },
    "type": "corporation",
    "subtype": "soleProprietorship",
    "employeeCountLowerBound": 1,
    "employeeCountUpperBound": 1,
    "countryOfOperations": "US",
    "mobileCheckDepositEnabled": true,
    "achEnabled": true,
    "authorizedSigners": [],
    "beneficialOwners": [],
    "createdAt": "2018-04-17T10:04:46.375Z",
    "updatedAt": "2018-04-17T10:12:58.375Z",
    "_links": {
      "self": {
        "href": "/organizations/organizations/0399abed-fd3d-4830-a88b-30f38b8a365c"
      },
      "apiture:deactivate": {
        "href": "/organizations/inactiveOrganizations?organization=0399abed-fd3d-4830-a88b-30f38b8a365c"
      }
    },
    "_embedded": {}
  },
  "authorizedSigners": {
    "_links": {
      "property1": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      },
      "property2": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      }
    },
    "_embedded": {},
    "_profile": "http://example.com",
    "_error": {
      "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
      "message": "The value for deposit must be greater than 0.",
      "statusCode": 422,
      "type": "positiveNumberRequired",
      "attributes": {
        "value": -125.5
      },
      "remediation": "Provide a value which is greater than 0",
      "occurredAt": "2018-01-25T05:50:52.375Z",
      "_links": {
        "describedby": {
          "href": "https://developer.apiture.com/errors/positiveNumberRequired"
        }
      },
      "_embedded": {
        "errors": []
      }
    },
    "items": [
      {
        "userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
        "customerId": "00047294723672",
        "type": "joint",
        "role": "Chief Financial Officer",
        "firstName": "John",
        "middleName": "Daniel",
        "lastName": "Smith",
        "taxId": "111-11-1111",
        "citizen": true,
        "addresses": [
          {
            "_id": "ha5",
            "type": "home",
            "addressLine1": "555 N Front Street",
            "addressLine2": "Suite 5555",
            "city": "Wilmington",
            "regionCode": "NC",
            "postalCode": "28401-5405",
            "countryCode": "US"
          },
          {
            "id": "wa0",
            "type": "other",
            "label": "mailing",
            "addressLine1": "123 S 3rd Street",
            "addressLine2": "Apt 42",
            "city": "Wilmington",
            "regionCode": "NC",
            "postalCode": "28411-5405",
            "countryCode": "US"
          }
        ],
        "preferredMailingAddressId": "ha5",
        "emailAddress": "JohnDanielSmith@example.com"
      }
    ]
  }
}

Embedded Account Objects (Version v1.0.0)

Embedded objects to include within an account's _embedded object, as selected with the embed query parameter on the getAccount operation.

Properties

NameDescription
owners owners
A personal account's primary and joint owners. This object is only available for personal accounts.
beneficiaries beneficiaries
A personal account's primary and joint owners. This object is only available for personal accounts.
owningBusiness organization
A business account's owning organization. This object is only available for business accounts. This is derived from the organization in the account application resource with which the account was created. This object is an Organization in the Organizations API. The business organization maintains a list of authorized signers who having permission to banking activity on the account.
read-only
authorizedSigners authorizedSigners
A list of authorized signers for a business account. This object is only available for business accounts.

owners

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
      "customerId": "00047294723672",
      "type": "joint",
      "role": "Chief Financial Officer",
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith",
      "taxId": "111-11-1111",
      "citizen": true,
      "addresses": [
        {
          "_id": "ha5",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "id": "wa0",
          "type": "other",
          "label": "mailing",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "preferredMailingAddressId": "ha5",
      "emailAddress": "JohnDanielSmith@example.com"
    }
  ]
}

Owners (Version v1.0.0)

Personal account primary and joint owners. These are fetched and set via the getOwners operations. Owners are added when other users accept invitations to become joint account holders. The user cannot directly modify this set of owners.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
items [authorization]
An array of account owners. For personal accounts, this array contains exactly one primary owner and zero or more joint owners. The maximum number of joint account owners, including the primary owner, is 10 (but in the future, this will be configurable by the financial institution.) The primary owner for new accounts is the user who creates the account application and account. Joint owners are added by inviting others.
minLength: 1

authorizedSigners

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
      "customerId": "00047294723672",
      "type": "joint",
      "role": "Chief Financial Officer",
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith",
      "taxId": "111-11-1111",
      "citizen": true,
      "addresses": [
        {
          "_id": "ha5",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "id": "wa0",
          "type": "other",
          "label": "mailing",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "preferredMailingAddressId": "ha5",
      "emailAddress": "JohnDanielSmith@example.com"
    }
  ]
}

Authorized Signers (Version v1.0.0)

The list of users who are authorized to access the organization and its bank accounts.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
items [authorization]
The array of authorized signers for this business and their role within the organization. These people have account access for all business accounts owned by the business. The items in this array must all have the type of authorizedSigner.
minLength: 1

beneficiaries

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "items": [
    {
      "type": "organization",
      "percent": 40,
      "organization": {
        "name": "Doctors Without Borders USA",
        "label": "Doctors Without Borders",
        "type": "nonProfit",
        "subtype": "charitableTrust",
        "identification": {
          "type": "taxId",
          "value": "13-3433452"
        },
        "addresses": [
          {
            "type": "headquarters",
            "addressLine1": "40 Rector St.",
            "addressLine2": "16th Floor",
            "city": "New York",
            "regionCode": "NY",
            "postalCode": 10006
          }
        ]
      }
    }
  ]
}

Beneficiaries (Version v1.0.0)

Account beneficiaries who received the account assets if the owner dies. Beneficiaries apply only to personal accounts.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
items [beneficiary]
A list of beneficiaries who receive the account assets payable on death (POD) of the account owner(s). This array may be empty. If the array is not empty, the percentages in this array should add up to 100 and may not exceed 100. However, if the array contains exactly one beneficiary, the percentage is automatically adjusted to 100%. The maximum number of account beneficiaries is 10 (but in the future, this will be configurable by the financial institution.) Beneficiaries are updated via the patchBeneficiaries operation.
maxLength: 10

beneficiary

{
  "type": "organization",
  "percent": 40,
  "organization": {
    "name": "Doctors Without Borders USA",
    "label": "Doctors Without Borders",
    "type": "nonProfit",
    "subtype": "charitableTrust",
    "identification": {
      "type": "taxId",
      "value": "13-3433452"
    },
    "addresses": [
      {
        "type": "headquarters",
        "addressLine1": "40 Rector St.",
        "addressLine2": "16th Floor",
        "city": "New York",
        "regionCode": "NY",
        "postalCode": 10006
      }
    ]
  }
}

Beneficiary (Version v1.0.0)

An account beneficiary which receives a percentage of the account assets if the personal account owner dies. A beneficiary is either a person or a business organization representing a trust or charity.

Properties

NameDescription
type string
Indicates if this beneficiary is a business organization or an individual person.


Enumerated values:
individual
organization

individual individualBeneficiary
Details of a beneficiary who is an individual person. The individual property is only used if type is individual and is thus mutually exclusive with organization.
organization simpleOrganization
Details of a trust or charity beneficiary. The organization property is only used if type is organization and is thus mutually exclusive with individual.

The organization must have a type of trust or nonProfit; if type is nonProfit the subtype must be charitableTrust. Each organization must also include their TIN in an identification record with type of taxId. Trusts must also include their legal name, mailing address, the date the trust was established, and the legal name. Charities and non-profit beneficiary must include the charity's legal name and a mailing address.

percentage integer
The percent of the account assets that this beneficiary should receive.

A value of 0 is allowed so a user can change the percentage to a non-zero value in the future without having to enter all the beneficiary data again.
maximum: 100

individualBeneficiary

{
  "firstName": "string",
  "middleName": "string",
  "lastName": "string",
  "addresses": [
    {
      "_id": "ha5",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  ],
  "preferredMailingAddressId": "stri",
  "taxId": "string",
  "citizen": true,
  "emailAddress": "user@example.com",
  "birthdate": "2020-03-19",
  "relationship": "string"
}

Individual Beneficiary (Version v1.0.0)

Details of a beneficiary who is an individual person. The individual property is only used if type is individual and is thus mutually exclusive with organization.

Properties

NameDescription
firstName string (required)
The person's first name (or given name).
middleName string
The person's middle name.
lastName string (required)
The person's last name (or surname).
addresses [address] (required)
An array of postal/mailing addresses.
preferredMailingAddressId string
The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
taxId string (required)
Official government identification (tax ID) for this person.
citizen boolean
Indicates if the person is a (US) citizen.
emailAddress string(email)
Optional email address.
birthdate string(date) (required)
The beneficiary's birth date in YYYY-MM-DD format.
relationship string
The beneficiary's relationship to the primary account owner, such as "child" or "spouse".

timeDeposit

{
  "maturesAt": "2019-10-30T08:16:00.000Z",
  "apyBumpedAt": "2019-10-30T08:16:00.000Z",
  "term": "P6M",
  "maturityPolicy": "rolloverPrincipalAndInterest",
  "rolloverProductName": "string",
  "transferTargetAccountName": "string"
}

Time Deposit (Version v1.0.0)

Properties of a time deposit account, typically Certificate of Deposit accounts.

Properties

NameDescription
maturesAt string(date-time)
The date-time that this account will mature. The account matures on the date which is derived by adding the duration of the term to the opening date-time. The date-time is a string in RFC 3339 UTF format: YYYY-MM-DDThh:mm:ss.sssZ.
apyBumpedAt string(date-time)
The date-time that the user bumped the rate after the financial institution offered a higher rate. This property only exists if the user elected to bump the APY rate during this account's current term. If the account is rolled over to a new account, this property does not exist (even if the rollover has the same account number). See the bumpApyRate operation. The date-time is a string in RFC 3339 UTF format: YYYY-MM-DDThh:mm:ss.sssZ.
term string(period)
The maturity term. The account matures on the date which is derived by adding the duration of the term to the opening date-time.

This value is an ISO 8601 duration string of the form P[n]Y[n]M[n]D to specify the term in the number of years/months/days. For example, the values P30D, P6M, P2Y indicate a term of 30 days, six months, and two years, respectively.
read-only

maturityPolicy maturityPolicy
What happens to the account upon maturity.
rolloverProductName string
If this account rolls over into a new product at maturity, this is the name of the banking product for the rollover account. The product is defined in the apiture:rolloverProduct in the account's _links.
read-only
transferTargetAccountName string
If this account transfers funds into an account at maturity, this is the name of the target account The account is defined in the apiture:transferTargetAccount in the account's _links.
read-only

interest

{
  "yearToDate": "3.12",
  "sinceOpening": "34.62"
}

Interest (Version v1.0.0)

The account's accrued interest. The values are in the currency associated with the account.

Properties

NameDescription
yearToDate string
The interest earned to date since the beginning of the year.
read-only
sinceOpening string
The interest earned since the account was opened.
read-only

accountSummaries

{
  "items": [
    {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
        },
        "apiture:product": {
          "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
        }
      },
      "name": "My savings",
      "description": "My Basic savings account",
      "routingNumber": "021000021",
      "institutionName": "Canapi Bank",
      "state": "active",
      "title": "John Smith",
      "ifxType": "SDA",
      "allowsTransfers": true,
      "accountNumbers": {
        "full": "9876543210",
        "masked": "*************3210"
      },
      "balance": {
        "current": "3450.30",
        "available": "3450.30",
        "currency": "USD"
      },
      "rates": {
        "apy": "1.410",
        "nominal": "1.400"
      },
      "rate": {
        "value": "1.40",
        "type": "apr"
      },
      "openedAt": {}
    }
  ]
}

Account Summaries (Version v1.0.0)

A page of embedded account summaries.

Properties

NameDescription
items [summaryAccount] (required)
An array containing a page of account items.

accounts

{
  "_profile": "https://api.apiture.com/schemas/accounts/accounts/v1.0.0/profile.json",
  "start": "10",
  "limit": 10,
  "count": 67,
  "name": "accounts",
  "_links": {
    "self": {
      "href": "/accounts/accounts?start=10&limit=10"
    },
    "first": {
      "href": "/accounts/accounts?start=0&limit=10"
    },
    "next": {
      "href": "/accounts/accounts?start=20&limit=10"
    },
    "collection": {
      "href": "/accounts/accounts"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
        "name": "My basic savings account",
        "title": "John Smith",
        "state": "active",
        "balance": {
          "current": "3450.30",
          "available": "3450.30",
          "currency": "USD"
        },
        "accountNumbers": {
          "masked": "*************3210"
        },
        "_links": {
          "self": {
            "href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
          },
          "apiture:product": {
            "href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
          }
        }
      }
    ]
  }
}

Account Collection (Version v1.0.0)

Collection of accounts. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection).

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded accountSummaries (required)
A page of embedded account summaries.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

balance

{
  "current": "3450.30",
  "available": "2850.30",
  "hold": "500.00",
  "reserve": "100.00",
  "currency": "USD"
}

Account Balance (Version v1.0.0)

The balance of the account. This is derived data and not mutable through the API. Balances may be negative, indicating a deficit or loan balance.

Properties

NameDescription
current string
The current balance is the available balance plus all pending credits and minus all pending debits.
read-only
available string
The string representation of the exact decimal available balance. For deposit accounts, this reflects the amount that may be used for withdrawals or transfers. This field does not apply to debit accounts such as loans.
read-only
hold string
The hold balance is the total amount of funds held due to holds placed on individual transactions. Transaction holds reduce the available balance until expiration.
read-only
reserve string
A reserve balance is the amount placed on hold by the Financial Institution. A reserve balance reduces the available balance.
read-only
pendingCredits string
The string representation of the total of all pending credits against this account. This contributes to the current balance but not the available balance.
read-only
pendingDebits string
The string representation of the total of all pending debits against this account. This contributes to the current balance but not the available balance.
read-only
currency string
The ISO 4217 currency code for this balance.
read-only

rate

{
  "value": "1.40",
  "type": "apr"
}

Interest Rate (Version v1.0.0)

The interest rate of the account. For deposit accounts, this is the rate of return; for loan accounts, this is the interest rate charged on balances.

Properties

NameDescription
value string
The rate, expressed as an decimal percentage in order to represent the rate exactly.
read-only
type interestRateType
The interest rate type.
read-only

summaryInterestRates

{
  "apy": "1.410",
  "nominal": "1.400"
}

Summary Interest Rates (Version v1.0.0)

The interest rates of the account summary. For deposit accounts, the rates describe the rate of return; for loan accounts, this includes the interest rate charged on balances. The values are percentages, expressed as strings containing a decimal percentage in order to represent the rate exactly. Rates are typically coded to 3 decimal places, but may have more. For example, "1.450" means 1.45%.

Properties

NameDescription
apy string(decimal)
The annual percentage yield (APY), the effective yield from interest, including compounding, as a percentage.
read-only
nominal string(decimal)
The interest rate that is effective as of the current day. This is the rate before accounting for inflation.
read-only
bumpToApy string(decimal)
The APY of a new bump rate offered by the financial institution. This property exists if and only if the associated deposit product offers a new bumped APY rate, typically only on CD time-deposit accounts that normally have an APY that is fixed for the term of the CD. The user can accept this APY increase offer via the bumpApyRate operation.
read-only
apr string(decimal)
The base annual percentage rate (APR); typically present on loan accounts.
read-only

interestRates

{
  "apy": "1.410",
  "nominal": "1.400",
  "apye": "1.415"
}

Interest Rates (Version v1.0.0)

The interest rates of the account. For deposit accounts, the rates describe the rate of return; for loan accounts, this includes the interest rate charged on balances. The values are percentages, expressed as strings containing a decimal percentage in order to represent the rate exactly. Rates are typically coded to 3 decimal places, but may have more. For example, "1.450" means 1.45%.

Properties

NameDescription
apy string(decimal)
The annual percentage yield (APY), the effective yield from interest, including compounding, as a percentage.
read-only
nominal string(decimal)
The interest rate that is effective as of the current day. This is the rate before accounting for inflation.
read-only
bumpToApy string(decimal)
The APY of a new bump rate offered by the financial institution. This property exists if and only if the associated deposit product offers a new bumped APY rate, typically only on CD time-deposit accounts that normally have an APY that is fixed for the term of the CD. The user can accept this APY increase offer via the bumpApyRate operation.
read-only
apr string(decimal)
The base annual percentage rate (APR); typically present on loan accounts.
read-only
originalApy string(decimal)
The original APY for this account's term, before the user bumped the APY rate. If the user bumped the rate, the apy reflects the new bumped APY. This property exists only on CD time-deposit accounts and only if the user has previously bumped APY rate.
read-only
apye string(decimal)
The annual percentage yield that this account is earning. The apye is an annualized rate based on the amount of interest actually earned, including compounding, as a percentage of the account's average daily balance. The apye is updated every account statement period.
read-only

internalAccountState

"active"

Internal Account State (Version v1.0.0)

The state of the account. This field is immutable and derived.

To change the state of an account, POST the account ID to the corresponding resource endpoints, using the corresponding link on the account resource. To activate an account, use the apiture:activate link to POST to /accounts/activeAccounts. To deactivate an account, use the apiture:deactivate link to POST to /accounts/inactiveAccounts. To freeze an account, use the apiture:freeze link to POST to /accounts/frozenAccounts. To close an account, use the apiture:close link to POST to /accounts/closedAccounts.

NameDescription
Internal Account State string
The state of the account. This field is immutable and derived.

  • pending : A new account that has not been verified
  • active : An account which is active and available for use and for making new transactions.
  • inactive : An account which is marked inactive and not available for new transactions. Inactive accounts may be changed back to active.
  • frozen : An account which is frozen and not eligible for new transactions. This is typically the result of suspicious activity or fraud detection. The user must contact their financial institution to unfreeze the account (by changing the state back to active) or the financial institution may opt to close the account.
  • closed : An account that is closed and removed from use Closed accounts are not eligible for transactions or to become active. Such accounts are retained for historical purposes because some transactions may refer to it. Users do not see closed accounts when they view their accounts.

To change the state of an account, POST the account ID to the corresponding resource endpoints, using the corresponding link on the account resource. To activate an account, use the apiture:activate link to POST to /accounts/activeAccounts. To deactivate an account, use the apiture:deactivate link to POST to /accounts/inactiveAccounts. To freeze an account, use the apiture:freeze link to POST to /accounts/frozenAccounts. To close an account, use the apiture:close link to POST to /accounts/closedAccounts.


Enumerated values:
pending
active
inactive
frozen
closed

Type: string
Enumerated values:
pending
active
inactive
frozen
closed

externalAccountState

"active"

External Account State (Version v1.0.0)

The state of an external (linked) banking account. This field is immutable and derived.

To change the state of an account, POST the account ID to the corresponding resource endpoints, using the corresponding link on the account resource. To activate an account, use the apiture:activate link to POST to /accounts/activeAccounts. To deactivate an account, use the apiture:deactivate link to POST to /accounts/inactiveAccounts. To freeze an account, use the apiture:freeze link to POST to /accounts/frozenAccounts. To close an account, use the apiture:close link to POST to /accounts/closedAccounts. To under review an account, use the apiture:review link to POST to /accounts/externalAccountsUnderReview.

NameDescription
External Account State string
The state of an external (linked) banking account. This field is immutable and derived.

  • pending : A new external account that has not been verified
  • verifying : A new account that is being verified. This state only applies to external accounts.
  • failed : A external account which has failed account verification.
  • active : An account which is active and available for use and for making new transactions.
  • inactive : An account which is marked inactive and not available for new transactions. Inactive accounts may be changed back to active.
  • frozen : An account which is frozen and not eligible for new transactions. This is typically the result of suspicious activity or fraud detection. The user must contact their financial institution to unfreeze the account (by changing the state back to active) or the financial institution may opt to close the account.
  • closed : An account that is closed and removed from use. Closed accounts are not eligible for transactions or to become active. Such accounts are retained for historical purposes because some transactions may refer to it. Users do not see closed accounts when they view their accounts.
  • underReview : A new account that is being under review. This state only applies to external accounts.

To change the state of an account, POST the account ID to the corresponding resource endpoints, using the corresponding link on the account resource. To activate an account, use the apiture:activate link to POST to /accounts/activeAccounts. To deactivate an account, use the apiture:deactivate link to POST to /accounts/inactiveAccounts. To freeze an account, use the apiture:freeze link to POST to /accounts/frozenAccounts. To close an account, use the apiture:close link to POST to /accounts/closedAccounts. To under review an account, use the apiture:review link to POST to /accounts/externalAccountsUnderReview.


Enumerated values:
pending
verifying
failed
active
inactive
frozen
closed
underReview

Type: string
Enumerated values:
pending
verifying
failed
active
inactive
frozen
closed
underReview

errorResponse

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Error Response (Version v1.0.0)

Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error object contains the error details.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.

root

{
  "id": "apiName",
  "name": "API name",
  "apiVersion": "1.0.0",
  "_profile": "https://production.api.apiture.com/schemas/common/root/v2.0.0/profile.json",
  "_links": {}
}

API Root (Version v2.0.0)

A HAL response, with hypermedia _links for the top-level resources and operations in API.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
_id string
This API's unique ID.
read-only
name string
This API's name.
apiVersion string
This API's version.

configurationGroups

{
  "_profile": "https://production.api.apiture.com/schemas/configurations/configurationGroups/v2.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "configurationGroups",
  "_links": {
    "self": {
      "href": "/configurations/configurations/groups?start=10&limit=10"
    },
    "first": {
      "href": "/configurations/configurations/groups?start=0&limit=10"
    },
    "next": {
      "href": "/configurations/configurations/groups?start=20&limit=10"
    },
    "collection": {
      "href": "/configurations/configurations/groups"
    }
  },
  "_embedded": {
    "items": [
      {
        "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/configurations/groups/basic"
          }
        },
        "name": "basic",
        "label": "Basic Settings",
        "description": "The basic settings for the Transfers API"
      },
      {
        "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/configurations/groups/calendar"
          }
        },
        "name": "calendar",
        "label": "Calendar",
        "description": "A calendar that specifies which dates are valid for performing transfers (e.g., weekdays excluding federal holidays)"
      }
    ]
  }
}

Configuration Group Collection (Version v2.0.0)

Collection of configuration groups. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection).

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
Embedded objects.
» items [configurationGroupSummary]
An array containing a page of configuration group items.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

configurationGroup

{
  "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/configurations/groups/basic"
    }
  },
  "name": "basic",
  "label": "Basic Settings",
  "description": "The basic settings for the Transfers API",
  "schema": {
    "type": "object",
    "properties": {
      "dailyLimit": {
        "type": "number",
        "description": "The daily limit for the number of transfers"
      },
      "cutoffTime": {
        "type": "string",
        "format": "time",
        "description": "The cutoff time for scheduling transfers for the current day"
      }
    }
  },
  "values": {
    "dailyLimit": 5,
    "cutoffTime": "17:30:00"
  }
}

Configuration Group (Version v2.0.0)

Represents a configuration group.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
name string
The name of this configuration group, must be unique within the set of all resources of this type.
minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
label string
The text label for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 128
description string
The full description for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 4096
schema configurationSchema
The schema which defines the name and types of the variables that are part of this configuration definition. Property names must be simple identifiers consisting of alphanumeric characters, -, _ following the pattern `letter [letter | digit | '-' | '']*`_

This is implicitly a schema for type: object and contains the properties.

The values in a configuration conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.

values configurationValues
The data values associated with this configuration group: the group's variable names and values. These values must conform to this item's schema.

Note: the schema may also contain default values which, if present, are used if a value is not set in the definition's values.

For example, multiple configurations may use the same schema that defines values a, b, and c, but each configuration may have their own unique values for a, b, and c which is separate from the schema.

configurationSchema

{
  "type": "object",
  "properties": {
    "dailyLimit": {
      "type": "number",
      "description": "The daily limit for the number of transfers"
    },
    "cutoffTime": {
      "type": "string",
      "format": "time",
      "description": "The cutoff time for scheduling transfers for the current day"
    }
  }
}

Configuration Schema (Version v2.0.0)

The schema which defines the name and types of the variables that are part of this configuration definition. Property names must be simple identifiers consisting of alphanumeric characters, -, following the pattern letter [letter | digit | &#39;-&#39; | &#39;</em>&#39;]*

This is implicitly a schema for type: object and contains the properties.

The values in a configuration conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.

Properties

NameDescription
additionalProperties configurationSchemaValue
The data associated with this configuration schema.

configurationValues

{
  "dailyLimit": 5,
  "cutoffTime": "17:30:00"
}

Configuration Values (Version v2.0.0)

The data values associated with this configuration group: the group's variable names and values. These values must conform to this item's schema.

Note: the schema may also contain default values which, if present, are used if a value is not set in the definition's values.

For example, multiple configurations may use the same schema that defines values a, b, and c, but each configuration may have their own unique values for a, b, and c which is separate from the schema.

Properties

NameDescription
additionalProperties configurationValue
The data associated with this configuration.

localizedLabels

{
  "property1": {
    "label": "Limited Liability Corporation",
    "description": "string",
    "language": "en-us",
    "code": "31"
  },
  "property2": {
    "label": "Limited Liability Corporation",
    "description": "string",
    "language": "en-us",
    "code": "31"
  }
}

Localized Labels (Version v1.0.0)

A map that defines lables for an enumeration or other item in a JSON schema. This is a map which maps enumeration schema names to an localizedLabel object.

Properties

NameDescription
additionalProperties localizedLabel
A localized label and optional description for localizable content defined in this API.

ifxType

"CCA"

IFX Account Type (Version v1.0.0)

A code which identifies the product type. This is one of the IFX AcctType values. Labels and descriptions for the enumeration values are in the ifxType key in the response of the getLabels operation.

NameDescription
IFX Account Type string
A code which identifies the product type. This is one of the IFX AcctType values. Labels and descriptions for the enumeration values are in the ifxType key in the response of the getLabels operation.


Enumerated values:
CCA
CDA
CLA
CMA
DDA
EQU
GLA
ILA
INV
IRA
IRL
LOC
MLA
MMA
PBA
PPA
RWD
SDA

Type: string
Enumerated values:
CCA
CDA
CLA
CMA
DDA
EQU
GLA
ILA
INV
IRA
IRL
LOC
MLA
MMA
PBA
PPA
RWD
SDA

attributes

{
  "property1": {},
  "property2": {}
}

Attributes (Version v2.0.0)

An optional map of name/value pairs which contains additional dynamic data about the resource.

Properties

NameDescription
additionalProperties attributeValue
The data associated with this attribute.

abstractRequest

{
  "_profile": "{uri of resource profile.json}",
  "_links": {
    "self": {
      "href": "{uri of current resource}"
    }
  }
}

Abstract Request (Version v2.0.0)

An abstract schema used to define other request-only schemas. This is a HAL resource representation, minus the _error defined in abstractResource.

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.

collection

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "count": 0,
  "start": 0,
  "limit": 0,
  "name": "string"
}

Collection (Version v2.0.0)

A collection of resources. This is an abstract model schema which is extended to define specific resource collections.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

authorizationType

"primary"

Account Authorization type (Version v1.0.0)

The type of this account access authorization.

  • primary the person is the primary owner of a personal account. There may be only one primary owner.
  • joint the person is a non-primary joint owner of a personal account.
  • authorizedSigner the person is an authorized signer for all business accounts owned by the organization.
NameDescription
Account Authorization type string

The type of this account access authorization.

  • primary the person is the primary owner of a personal account. There may be only one primary owner.
  • joint the person is a non-primary joint owner of a personal account.
  • authorizedSigner the person is an authorized signer for all business accounts owned by the organization.


Enumerated values:
primary
joint
authorizedSigner

Type: string
Enumerated values:
primary
joint
authorizedSigner

organization

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "customerId": "000489353781",
  "_profile": "https://api.apiture.com/schemas/organizations/organization/v1.0.0/profile.json",
  "name": "Smith's Auto Detailing",
  "label": "Smith's Detailing",
  "tradeName": "Smith's Auto Detailing",
  "emailAddresses": [
    {
      "_id": "ea0",
      "type": "work",
      "value": "smitties-detailing@example.com"
    }
  ],
  "preferredEmailAddressId": "ea0",
  "phones": [
    {
      "type": "work",
      "number": "(555) 555-5555",
      "_id": "wp0"
    },
    {
      "type": "mobile",
      "number": "(999) 555-5555",
      "_id": "wp1"
    }
  ],
  "preferredPhoneNumberId": "wp0",
  "addresses": [
    {
      "type": "work",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "type": "work",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "US"
    }
  ],
  "preferredMailingAddressId": "wa0",
  "establishedDate": "2009-07-09T",
  "identification": [
    {
      "type": "taxId",
      "value": "00-9999999"
    }
  ],
  "state": "active",
  "governmentOwned": false,
  "registeredIn": "NC",
  "publiclyHeld": false,
  "smallBusiness": true,
  "taxExempt": false,
  "currency": "USD",
  "estimatedAnnualRevenue": "from1to10Million",
  "estimatedMonthlyAmounts": {
    "sentWire": "20000.00",
    "receivedWire": "30000.00",
    "mobileCheckDeposit": "250000.00",
    "receivedAch": "40000.00",
    "sentAch": "35000.00"
  },
  "type": "corporation",
  "subtype": "soleProprietorship",
  "employeeCountLowerBound": 1,
  "employeeCountUpperBound": 1,
  "countryOfOperations": "US",
  "mobileCheckDepositEnabled": true,
  "achEnabled": true,
  "authorizedSigners": [],
  "beneficialOwners": [],
  "createdAt": "2018-04-17T10:04:46.375Z",
  "updatedAt": "2018-04-17T10:12:58.375Z",
  "_links": {
    "self": {
      "href": "/organizations/organizations/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:deactivate": {
      "href": "/organizations/inactiveOrganizations?organization=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {}
}

Organization (Version v1.0.0)

Representation of content and descriptive data (mailing addresses, phone numbers, email addresses) for an organization.

An organization which is used for a business banking account may have authorized signers, which are people authorized to perform banking operations on the business account(s) such as initiating funds transfers.

Regulations require identifying an organization's beneficial owners: people who own 25% or more of a business. These may be listed and updated with the getBeneficialOwners and updateBeneficialOwners operations.

An organization may have the following links in the _links object:

  • apiture:activate - Activate a new, pending organization.
  • apiture:deactivate - Deactivate an organization (if it is pending or active).
  • apiture:remove - Remove an inactive organization.
  • apiture:authorizedSigners - List the authorized signers.
  • apiture:beneficialOwners - List the beneficial owners.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
Embedded objects, as selected with the ?embed query parameter.
» authorizedSigners authorizedSigners
The list of users who are authorized to access the organization and its bank accounts.
» beneficialOwners beneficialOwners
A list of people who own at least 25% of the business or who have a major role in the organization. The sum of the percentages may not exceed 100%. The percentage may be less than 25 for non-owners with a major role, or to retain other owners whose percentage may change to 25% in the future.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
name string
The organization's official full name
label string
The organization's common name.
type organizationType
Indicates what type of organization this resource represents.

The enumeration values are described by the organizationType value in the response of the getLabels operation.

subtype organizationSubtype
A refinement of the type.

The enumeration values are described by the organizationSubtype value in the response of the getLabels operation.

identification [organizationIdentification]
A collection of official identifying information associated with the organization. This currently only supports government tax ID.
addresses [organizationAddress]
An array containing address items.
phones [organizationPhoneNumber]
An array of phone numbers associated with the organization. The first item, if present, is the default (preferred) organization phone number.
emailAddresses [organizationEmailAddress]
An array of email addresses associated with the organization. The first item, if present, is the default (preferred) organization email.
preferredEmailAddressId string
The ID of the organization's preferred email address. This string is the _id of an email address in the emailAddresses array. This value is set with the setPreferredEmailAddress operation.
read-only
minLength: 1
maxLength: 4
preferredPhoneId string
The ID of organization's preferred phone number. This string is the _id of a phone number in the phones array. This value is set with the setPreferredPhoneNumber operation.
read-only
minLength: 1
maxLength: 4
preferredMailingAddressId string
The preferred mailing address. This string is the _id of an address in the addresses array. This value is set with the setPreferredMailingAddress operation.
read-only
minLength: 1
maxLength: 4
establishedDate string(date)
The date the organization was established.
state organizationState
The state of this organization. The enumeration values are described by the organizationState value in the response of the getLabels operation.
tradeName string
The trade name of the organization.
governmentOwned boolean
Indicates whether the organization is a government-owned entity.
publiclyHeld boolean
Indicates whether the organization is publicly held.
smallBusiness boolean
Indicates whether the organization is classified as a small business
taxExempt boolean
Indicates whether the organization is the tax-exempt.
employeeCountLowerBound number
The lower bound of persons employed.
minimum: 1
employeeCountUpperBound number
The upper bound of persons employed.
maximum: 20000000
homeUrl string
The organization's home page.
industry string
Indicates what industry does this organization work within.
countryOfOperations string
The ISO 3166-1 country code for the organization's operation.
minLength: 2
maxLength: 2
regulatory object
An object containing answers to organization specific regulatory questions.
currency string
The ISO 4217 currency code for this monetary value. This is always upper case ASCII. TODO: ISO 4217 defines three-character codes. However, ISO 4217 does not account for cryptocurrencies. Of note, DASH uses 4 characters.
minLength: 3
maxLength: 3
estimatedAnnualRevenue estimatedAnnualRevenue
USD amount of estimated revenue.
mobileCheckDepositEnabled boolean
Indicates that the organization use mobile check deposits.
achEnabled boolean
Indicates that the organization use ACH transfers.
estimatedMonthlyAmounts object
Indicates the estimated monthly amounts for wires, mobile deposits and ACH
» sentWire string
Indicates the estimated monthly minimum wires amount sent.
» receivedWire string
Indicates the estimated monthly minimum wires amount received.
» mobileCheckDeposit string
Indicates the estimated monthly minimum amount to deposit.
» receivedAch string
Indicates the estimated monthly total amount to receive by ACH.
» sentAch string
Indicates the estimated monthly total amount to send by ACH.
accountPurpose accountPurpose
The purpose of the account.
registeredIn string
The US state or other region in which the organization is registered.
minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
_id string
The unique identifier for this organization resource. This is an immutable opaque string.
read-only
customerId string
The unique customer number, also known as the Customer Identification File number or CIF number. This derived value is assigned to the organization in the banking core. The customerId differs from the _id (which is the ID of the resource in the Organizations API).
read-only
minLength: 1
maxLength: 32
createdAt string(date-time)
The date-time when the organization was created.
updatedAt string(date-time)
The date-time when the organization was updated
attributes object
An optional map of name/value pairs which provide additional metadata about the organization.

authorization

{
  "userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
  "customerId": "00047294723672",
  "type": "joint",
  "role": "Chief Financial Officer",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "taxId": "111-11-1111",
  "citizen": true,
  "addresses": [
    {
      "_id": "ha5",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "id": "wa0",
      "type": "other",
      "label": "mailing",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "US"
    }
  ],
  "preferredMailingAddressId": "ha5",
  "emailAddress": "JohnDanielSmith@example.com"
}

Authorization (Version v1.0.0)

Represents a person authorized for account access. This object contains key identification information for the person and the type of access or role that the person has in relation to the banking account or organization.

Properties

NameDescription
firstName string (required)
The person's first name (or given name).
middleName string
The person's middle name.
lastName string (required)
The person's last name (or surname).
addresses [address] (required)
An array of postal/mailing addresses.
preferredMailingAddressId string
The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
taxId string (required)
Official government identification (tax ID) for this person.
citizen boolean (required)
Indicates if the person is a (US) citizen.
emailAddress string(email)
Optional email address.
userId string (required)
The unique ID of the user. This is the _id value of the user resource from the Users API.
customerId string (required)
The unique customer number, also known as the Customer Identification File number or CIF number. This derived value is assigned to the user in the banking core. The customerId differs from the _id (which is the ID of the resource in the Users API).
read-only
minLength: 1
maxLength: 32
type authorizationType (required)

The type of this account access authorization.

  • primary the contact is the primary owner of a personal account. There may be only one primary owner. The target of the authorization is a single personal account.
  • joint the contact is a non-primary joint owner of a personal account. The target of the authorization is a single personal account.
  • authorizedSigner the contact is an authorized signer for a business account. The target of the authorization is an all business accounts owned by the organization.
role string
The person's role at the organization. This attribute is required when the authorization type is authorizedSigner.

simpleOrganization

{
  "name": "Smith's Auto Detailing",
  "label": "Smith's Detailing",
  "emailAddresses": [
    {
      "type": "work",
      "value": "smitties-detailing@example.com"
    }
  ],
  "identification": [
    {
      "type": "taxId",
      "value": "00-9999999"
    }
  ],
  "phones": [
    {
      "type": "work",
      "number": "(555) 555-5555"
    },
    {
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "addresses": [
    {
      "type": "work",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "type": "work",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "US"
    }
  ],
  "establishedDate": "2009-07-09T"
}

Simple Organization (Version v1.0.0)

The simplest form of an organization.

Properties

NameDescription
name string
The organization's official full name
label string
The organization's common name.
type organizationType
Indicates what type of organization this resource represents.

The enumeration values are described by the organizationType value in the response of the getLabels operation.

subtype organizationSubtype
A refinement of the type.

The enumeration values are described by the organizationSubtype value in the response of the getLabels operation.

identification [organizationIdentification]
A collection of official identifying information associated with the organization. This currently only supports government tax ID.
addresses [organizationAddress]
An array containing address items.
phones [organizationPhoneNumber]
An array of phone numbers associated with the organization. The first item, if present, is the default (preferred) organization phone number.
emailAddresses [organizationEmailAddress]
An array of email addresses associated with the organization. The first item, if present, is the default (preferred) organization email.
preferredEmailAddressId string
The ID of the organization's preferred email address. This string is the _id of an email address in the emailAddresses array. This value is set with the setPreferredEmailAddress operation.
read-only
minLength: 1
maxLength: 4
preferredPhoneId string
The ID of organization's preferred phone number. This string is the _id of a phone number in the phones array. This value is set with the setPreferredPhoneNumber operation.
read-only
minLength: 1
maxLength: 4
preferredMailingAddressId string
The preferred mailing address. This string is the _id of an address in the addresses array. This value is set with the setPreferredMailingAddress operation.
read-only
minLength: 1
maxLength: 4
establishedDate string(date)
The date the organization was established.

maturityPolicy

"rolloverPrincipalAndInterest"

Maturity Policy (Version v1.0.0)

Indicates how the principal and interest are processed upon maturity. The values indicate whether to rollover (to a time deposit account of the same rate and term), transfer funds to another (possibly new) deposit account, or simply hold the funds in the current account (which may no longer accrue interest). Labels and descriptions for the enumeration values are in the maturityPolicy key in the response of the getLabels operation.

NameDescription
Maturity Policy string
Indicates how the principal and interest are processed upon maturity. The values indicate whether to rollover (to a time deposit account of the same rate and term), transfer funds to another (possibly new) deposit account, or simply hold the funds in the current account (which may no longer accrue interest). Labels and descriptions for the enumeration values are in the maturityPolicy key in the response of the getLabels operation.


Enumerated values:
rolloverPrincipalAndInterest
transferPrincipalAndInterest
rolloverPrincipalAndTransferInterest
holdPrincipalAndInterest
partialTransfer

Type: string
Enumerated values:
rolloverPrincipalAndInterest
transferPrincipalAndInterest
rolloverPrincipalAndTransferInterest
holdPrincipalAndInterest
partialTransfer

interestRateType

"apr"

Interest Rate Type (Version v1.0.0)

The rate type. The rate type may not be changed once it is set at product creation. Rate types are:

  • apr - annual percentage rate
  • apy - annual percentage yield
NameDescription
Interest Rate Type string

The rate type. The rate type may not be changed once it is set at product creation. Rate types are:

  • apr - annual percentage rate
  • apy - annual percentage yield


Enumerated values:
apr
apy

Type: string
Enumerated values:
apr
apy

configurationSchemaValue

{}

Configuration Schema Value (Version v2.0.0)

The data associated with this configuration schema.

Properties

organizationType

"corporation"

Organization Type (Version v1.0.0)

The primary organization type.

NameDescription
Organization Type string
The primary organization type.


Enumerated values:
corporation
partnership
llc
llp
nonProfit
trust
municipality
custodial
financialInstitution
publicFunds
federalGovernment
unknown
soleProprietorship
other
notApplicable

Type: string
Enumerated values:
corporation
partnership
llc
llp
nonProfit
trust
municipality
custodial
financialInstitution
publicFunds
federalGovernment
unknown
soleProprietorship
other
notApplicable

organizationSubtype

"soleProprietorship"

Organization Subtype (Version v1.0.0)

A refinement of the organization type.

NameDescription
Organization Subtype string
A refinement of the organization type.


Enumerated values:
soleProprietorship
partnership
limitedPartnership
corporation
sCorporation
limitedLiabilityCompany
revokableTrust
irrevocableTrust
assetProtectionTrust
charitableTrust
constructiveTrust
specialNeedsTrust
spendthriftTrust
taxBypassTrust
tottenTrust
other

Type: string
Enumerated values:
soleProprietorship
partnership
limitedPartnership
corporation
sCorporation
limitedLiabilityCompany
revokableTrust
irrevocableTrust
assetProtectionTrust
charitableTrust
constructiveTrust
specialNeedsTrust
spendthriftTrust
taxBypassTrust
tottenTrust
other

organizationIdentification

{
  "value": "string",
  "type": "taxId",
  "expiresOn": "2020-03-19",
  "expiration": "2020-03-19"
}

Organization Identification (Version v1.0.0)

The type and value of the organizations unique identification numbers.

Properties

NameDescription
value string (required)
The value of this form of identification (the tax ID as a string, for example)
type organizationIdentificationType (required)
The type of this form of identification. taxId is the only supported type at this time.
expiresOn string(date)
The date when this form of identification expires.
expiration string(date)
The date when this form of identification expires. Note This property is deprecated; use expiresOn.

organizationAddress

{
  "_id": "ha1",
  "type": "home",
  "addressLine1": "555 N Front Street",
  "addressLine2": "Suite 5555",
  "city": "Wilmington",
  "regionCode": "NC",
  "postalCode": "28401-5405",
  "countryCode": "US",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/organizations/organizations/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
    }
  }
}

Organization Address (Version v1.0.0)

Representation of an organization's address resource.

Properties

NameDescription
type string
The type of this address.


Enumerated values:
unknown
home
prior
work
school
postOffice
vacation
shipping
billing
headquarters
commercial
property
other
notApplicable

label string
A text label, suitable for presentation to the end user. This is derived from type or from otherType if type is other
read-only
minLength: 4
maxLength: 32
otherType string
The actual address type if type is other.
minLength: 4
maxLength: 32
addressLine1 string
The first street address line of the address, normally a house number and street name.
minLength: 4
maxLength: 128
addressLine2 string
The optional second street address line of the address.
maxLength: 128
city string
The name of the city or municipality.
minLength: 2
maxLength: 128
regionCode string
The mailing address region code, such as state in the US, or a province in Canada. This is normalized to uppercase.
minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
postalCode string
The mailing address postal code, such as a US Zip or Zip+4 code, or a Canadian postal code.
minLength: 5
maxLength: 10
pattern: ^[0-9]{5}(?:-[0-9]{4})?$
countryCode string
The ISO 3166-1 alpha-2 country code. This is normalized to uppercase.
minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
_id string
An identifier for this address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all addresses within the addresses array.
minLength: 1
maxLength: 8
pattern: ^[-a-zA-Z0-9_]{1,8}$
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
state profileItemState
The state of this address. pending addresses require financial institution approval. Only approved addresses may be set as the preferred address.

See the definition of the organizationAddress schema in organizations API for definition of the links on this schema.

organizationPhoneNumber

{
  "_id": "hp1",
  "_profile": "https://api.apiture.com/schemas/organizations/organizationPhoneNumber/v1.0.0/profile.json",
  "type": "home",
  "number": "555-555-5555",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/organizations/organizations/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
    }
  }
}

Phone Number (Version v1.0.0)

Representation of phone number resources.

Properties

NameDescription
type string
The type or role of this phone number.


Enumerated values:
unknown
home
work
mobile
fax
other

number string
The phone number, as a string.
minLength: 8
maxLength: 16
label string
A text label, suitable for presentation to the end user. This is also used if type is other.
maxLength: 32
_id string
An identifier for this phone number, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all phone numbers within the phones array.
minLength: 1
maxLength: 8
pattern: ^[-a-zA-Z0-9_]{1,8}$
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
state profileItemState
The state of this phone number. pending numbers require financial institution approval. Only approved numbers may be set as the preferred phone number.

See the definition of the organizationPhoneNumber schema in organizations API for definition of the links on this schema.

organizationEmailAddress

{
  "_id": "pe1",
  "_profile": "https://api.apiture.com/schemas/organizations/organizationEmailAddress/v1.0.0/profile.json",
  "type": "personal",
  "number": "555-555-5555",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/organizations/organizations/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
    },
    "delete": {
      "href": "/organizations/organizations/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
    },
    "apiture:setAsPreferred": {
      "href": "/organizations/organizations/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
    }
  }
}

Email Address (Version v1.0.0)

Representation of email address resources. An email address is immutable, although organizations can add new email addresses.

Properties

NameDescription
value string(email)
The email address, such as JohnBankCustomer@example.com
minLength: 8
maxLength: 120
type string
The kind of email address this is.


Enumerated values:
unknown
personal
work
school
other
notApplicable

_id string
An identifier for this email address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all email addresses within the emailAddresses array.
minLength: 1
maxLength: 8
pattern: ^[-a-zA-Z0-9_]{1,8}$
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
state profileItemState
The state of this email address. pending email addresses require financial institution approval. Only approved numbers may be set as the preferred email address.

See the definition of the organizationEmailAddress schema in organizations API for definition of the links on this schema.

{
  "property1": {
    "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
    "title": "Applicant"
  },
  "property2": {
    "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
    "title": "Applicant"
  }
}

Links (Version v1.0.0)

An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

Properties

NameDescription
additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.

configurationGroupSummary

{
  "_profile": "https://api.apiture.com/schemas/configurations/configurationGroupSummary/v2.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/configurations/groups/basic"
    }
  },
  "name": "basic",
  "label": "Basic Settings",
  "description": "The basic settings for the Transfers API"
}

Configuration Group Summary (Version v2.0.0)

A summary of the data contained within a configuration group resource.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
name string
The name of this configuration group, must be unique within the set of all resources of this type.
minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
label string
The text label for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 128
description string
The full description for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 4096

configurationValue

{}

Configuration Value (Version v2.0.0)

The data associated with this configuration.

Properties

localizedLabel

{
  "label": "Limited Liability Corporation",
  "description": "string",
  "language": "en-us",
  "code": "31"
}

Localized Label (Version v1.0.0)

A localized label and optional description for localizable content defined in this API.

Properties

NameDescription
label string
A localized label or title which may be used labels or other UI controls which present a value.
description string
A more detailed localized description of a localizable label.
language string
The actual natural language tag to which this localized label is associated, as per RFC 7231
code string
If the localized value is associated with an external standard, this is a lookup code or key or URI for that value.

error

{
  "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
  "message": "The value for deposit must be greater than 0.",
  "statusCode": 422,
  "type": "positiveNumberRequired",
  "attributes": {
    "value": -125.5
  },
  "remediation": "Provide a value which is greater than 0",
  "occurredAt": "2018-01-25T05:50:52.375Z",
  "_links": {
    "describedby": {
      "href": "https://developer.apiture.com/errors/positiveNumberRequired"
    }
  },
  "_embedded": {
    "errors": []
  }
}

Error (Version v1.0.0)

Describes an error in an API request or in a service called via the API.

Properties

NameDescription
message string (required)
A localized message string describing the error condition.
_id string
A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string.
statusCode integer
The HTTP status code associate with this error.
minimum: 100
maximum: 599
type string
An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode. For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet.
occurredAt string(date-time)
An RFC 3339 UTC time stamp indicating when the error occurred.
attributes attributes
Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type.
remediation string
An optional localized string which provides hints for how the user or client can resolve the error.
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
Embedded objects. An error object may contain nested errors. For example, an API which validates its request body may find multiple errors in the request, which are returned with an error response with nested errors. These are held in an items array of errorResponse objects. _embedded or _embedded.items may not exist if the error does not have nested errors.
» items [errorResponse]
An array of error objects.

summaryOrganization

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/organizations/organization/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/organizations/organizations/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Organization Summary (Version v1.0.0)

Summary representation of an organization resource in organizations collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
name string
The organization's official full name
label string
The organization's common name.
type organizationType
Indicates what type of organization this resource represents.

The enumeration values are described by the organizationType value in the response of the getLabels operation.

subtype organizationSubtype
A refinement of the type.

The enumeration values are described by the organizationSubtype value in the response of the getLabels operation.

identification [organizationIdentification]
A collection of official identifying information associated with the organization. This currently only supports government tax ID.
addresses [organizationAddress]
An array containing address items.
phones [organizationPhoneNumber]
An array of phone numbers associated with the organization. The first item, if present, is the default (preferred) organization phone number.
emailAddresses [organizationEmailAddress]
An array of email addresses associated with the organization. The first item, if present, is the default (preferred) organization email.
preferredEmailAddressId string
The ID of the organization's preferred email address. This string is the _id of an email address in the emailAddresses array. This value is set with the setPreferredEmailAddress operation.
read-only
minLength: 1
maxLength: 4
preferredPhoneId string
The ID of organization's preferred phone number. This string is the _id of a phone number in the phones array. This value is set with the setPreferredPhoneNumber operation.
read-only
minLength: 1
maxLength: 4
preferredMailingAddressId string
The preferred mailing address. This string is the _id of an address in the addresses array. This value is set with the setPreferredMailingAddress operation.
read-only
minLength: 1
maxLength: 4
establishedDate string(date)
The date the organization was established.
state organizationState
The state of this organization. The enumeration values are described by the organizationState value in the response of the getLabels operation.
tradeName string
The trade name of the organization.
governmentOwned boolean
Indicates whether the organization is a government-owned entity.
publiclyHeld boolean
Indicates whether the organization is publicly held.
smallBusiness boolean
Indicates whether the organization is classified as a small business
taxExempt boolean
Indicates whether the organization is the tax-exempt.
employeeCountLowerBound number
The lower bound of persons employed.
minimum: 1
employeeCountUpperBound number
The upper bound of persons employed.
maximum: 20000000
homeUrl string
The organization's home page.
industry string
Indicates what industry does this organization work within.
countryOfOperations string
The ISO 3166-1 country code for the organization's operation.
minLength: 2
maxLength: 2
regulatory object
An object containing answers to organization specific regulatory questions.
currency string
The ISO 4217 currency code for this monetary value. This is always upper case ASCII. TODO: ISO 4217 defines three-character codes. However, ISO 4217 does not account for cryptocurrencies. Of note, DASH uses 4 characters.
minLength: 3
maxLength: 3
estimatedAnnualRevenue estimatedAnnualRevenue
USD amount of estimated revenue.
mobileCheckDepositEnabled boolean
Indicates that the organization use mobile check deposits.
achEnabled boolean
Indicates that the organization use ACH transfers.
estimatedMonthlyAmounts object
Indicates the estimated monthly amounts for wires, mobile deposits and ACH
» sentWire string
Indicates the estimated monthly minimum wires amount sent.
» receivedWire string
Indicates the estimated monthly minimum wires amount received.
» mobileCheckDeposit string
Indicates the estimated monthly minimum amount to deposit.
» receivedAch string
Indicates the estimated monthly total amount to receive by ACH.
» sentAch string
Indicates the estimated monthly total amount to send by ACH.
accountPurpose accountPurpose
The purpose of the account.
registeredIn string
The US state or other region in which the organization is registered.
minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
_id string
The unique identifier for this organization resource. This is an immutable opaque string.
read-only
customerId string
The unique customer number, also known as the Customer Identification File number or CIF number. This derived value is assigned to the organization in the banking core. The customerId differs from the _id (which is the ID of the resource in the Organizations API).
read-only
minLength: 1
maxLength: 32

beneficialOwners

{
  "items": [
    {
      "firstName": "William",
      "lastName": "Wellphunded",
      "addresses": [
        {
          "addressLine1": "1234 S Front Street",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US",
          "type": "home"
        }
      ],
      "role": "Chief Financial Officer",
      "percentage": 35,
      "birthdate": {},
      "identification": [
        {
          "type": "taxId",
          "value": "111-11-1111"
        }
      ]
    }
  ],
  "_links": {
    "self": {
      "href": "/organizations/organizations/0399abed-fd3d-4830-a88b-30f38b8a365c/beneficialOwners"
    }
  }
}

Beneficial Owners (Version v1.0.0)

A list of people who own at least 25% of the business or who have a major role in the organization. The sum of the percentages may not exceed 100%. The percentage may be less than 25 for non-owners with a major role, or to retain other owners whose percentage may change to 25% in the future.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
items [beneficialOwner] (required)
A list of people who own at least 25% of the business, and the percentage owned.
maxLength: 10

organizationIdentificationType

"taxId"

Organization Identification Type (Version v1.0.0)

The type of the form of an organization's identification. taxId is the only supported type at this time.

NameDescription
Organization Identification Type string
The type of the form of an organization's identification. taxId is the only supported type at this time.


Enumerated values:
taxId
dunsNumber

Type: string
Enumerated values:
taxId
dunsNumber

address

{
  "_id": "ha5",
  "type": "home",
  "addressLine1": "555 N Front Street",
  "addressLine2": "Suite 5555",
  "city": "Wilmington",
  "regionCode": "NC",
  "postalCode": "28401-5405",
  "countryCode": "US"
}

Address (Version v1.0.0)

A postal address.

Properties

NameDescription
type string (required)
The type of this address.


Enumerated values:
unknown
home
prior
work
school
postOffice
vacation
shipping
billing
headquarters
commercial
property
other
notApplicable

label string
A text label, suitable for presentation to the end user. This is derived from type or from otherType if type is other
read-only
minLength: 4
maxLength: 32
otherType string
The actual address type if type is other.
minLength: 4
maxLength: 32
addressLine1 string
The first street address line of the address, normally a house number and street name.
minLength: 4
maxLength: 128
addressLine2 string
The optional second street address line of the address.
maxLength: 128
city string
The name of the city or municipality.
minLength: 2
maxLength: 128
regionCode string
The mailing address region code, such as state in the US, or a province in Canada. This is normalized to uppercase.
minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
postalCode string
The mailing address postal code, such as a US Zip or Zip+4 code, or a Canadian postal code.
minLength: 5
maxLength: 10
pattern: ^[0-9]{5}(?:-[0-9]{4})?$
countryCode string
The ISO 3166-1 alpha-2 country code. This is normalized to uppercase.
minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
_id string
An identifier for this address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all addresses within the addresses array.
minLength: 1
maxLength: 8
pattern: ^[-a-zA-Z0-9_]{1,8}$

profileItemState

"approved"

Organization Profile Item State (Version v1.0.0)

The state of an item (address, email address, or phone number) within the organization's profile. New addresses, email addresses, or phone numbers start with the state pending, which means approval by the financial institution is pending. After they have been verified, the state becomes approved. Some normalizing or sanitizing of the value may occur when this happens (for example, a ZIP code may change to ZIP+4 format). pending items may not be assigned as the preferred item.

NameDescription
Organization Profile Item State string
The state of an item (address, email address, or phone number) within the organization's profile. New addresses, email addresses, or phone numbers start with the state pending, which means approval by the financial institution is pending. After they have been verified, the state becomes approved. Some normalizing or sanitizing of the value may occur when this happens (for example, a ZIP code may change to ZIP+4 format). pending items may not be assigned as the preferred item.


Enumerated values:
pending
approved

Type: string
Enumerated values:
pending
approved

typedEmailAddress

{
  "value": "JohnBankCustomer@example.com",
  "type": "unknown",
  "_id": "ha3"
}

Email Address (Version v1.0.0)

An email address and the email address type.

Properties

NameDescription
value string(email)
The email address, such as JohnBankCustomer@example.com
minLength: 8
maxLength: 120
type string
The kind of email address this is.


Enumerated values:
unknown
personal
work
school
other
notApplicable

_id string
An identifier for this email address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all email addresses within the emailAddresses array.
minLength: 1
maxLength: 8
pattern: ^[-a-zA-Z0-9_]{1,8}$

{
  "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
  "title": "Applicant"
}

Link (Version v1.0.0)

Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.

Properties

NameDescription
href string(uri) (required)
The URI or URI template for the resource/operation this link refers to.
type string
The media type for the resource.
templated boolean
If true, the link's href is a URI template.
title string
An optional human-readable localized title for the link.
deprecation string(uri)
If present, the containing link is deprecated and the value is a URI which provides human-readable text information about the deprecation.
profile string(uri)
The URI of a profile document, a JSON document which describes the target resource/operation.

beneficialOwner

{
  "firstName": "William",
  "lastName": "Wellphunded",
  "addresses": [
    {
      "addressLine1": "1234 S Front Street",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US",
      "type": "home"
    }
  ],
  "identification": [
    {
      "type": "taxId",
      "value": "111-11-1111"
    }
  ],
  "role": "Chief Financial Officer",
  "birthdate": {},
  "percentage": 35,
  "contactId": "8bf04d7d-c1bd-4945-b0ac-40ef02bb3953"
}

Beneficial Owner (Version v1.0.0)

A person who owns 25% or more of a business organization.

Properties

NameDescription
firstName string (required)
The person's first name (or given name).
middleName string
The person's middle name.
lastName string (required)
The person's last name (or surname).
addresses [address]
An array of postal/mailing addresses.
preferredMailingAddressId string
The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
emailAddresses [typedEmailAddress]
An array of email addresses.
preferredEmailAddressId string
The preferred email address. This string is the _id of an email address in the emailAddresses array.
minLength: 1
maxLength: 4
phones [phoneNumber]
An array of phone numbers.
preferredPhoneId string
The ID of preferred phone number. This string is the _id of a phone number in the phones array.
minLength: 1
maxLength: 4
prefix string
A title or honorific prefix such as Dr. or Fr.
maxLength: 20
suffix string
A title or honorific suffix such as PhD or DDS.
maxLength: 20
preferredName string
The contact's preferred name. This is how the contact's name is presented to the user in the interface. The default is the contact's firstName.
identification [identification] (required)
A collection of official identifying information associated with the contact.
preferredContactMethod preferredContactMethod
The contact's preferred method of communication.
role string
The person's role at the organization.
percentage integer (required)
The percent of the business that this person owns.
maximum: 100
birthdate string(date)
The beneficial's birth date in YYYY-MM-DD format.
contactId string (required)
The _id of an existing contact resource associated with the beneficial owner. Create the beneficial owner contact resource using the Contacts API.

phoneNumber

{
  "_id": "hp1",
  "type": "home",
  "number": "555-555-5555"
}

Phone Number (Version v1.0.0)

A phone number and its role.

Properties

NameDescription
type string (required)
The type or role of this phone number.


Enumerated values:
unknown
home
work
mobile
fax
other

number string (required)
The phone number, as a string.
minLength: 8
maxLength: 16
label string
A text label, suitable for presentation to the end user. This is also used if type is other.
maxLength: 32
_id string
An identifier for this phone number, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all phone numbers within the phones array.
minLength: 1
maxLength: 8
pattern: ^[-a-zA-Z0-9_]{1,8}$

attributeValue

{}

Attribute Value (Version v2.0.0)

The data associated with this attribute.

Properties

simpleContact

{
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "suffix": "MD",
  "identification": [
    {
      "type": "taxId",
      "value": "111-11-1111"
    }
  ],
  "addresses": [
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  ],
  "preferredMailingAddressId": "ha1",
  "emailAddresses": [
    {
      "id": "pe0",
      "value": "api@apiture.com",
      "type": "personal"
    },
    {
      "id": "wp1",
      "value": "support@apiture.com",
      "type": "work"
    }
  ],
  "preferredEmailAddressId": "pe0",
  "phones": [
    {
      "_id": "hp1",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp1",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "preferredPhoneId": "hp1",
  "preferredContactMethod": "email"
}

Simple Contact (Version v1.0.0)

Basic contact and identification information for a person, consisting of the name, mailing address, phone numbers, email addresses, and government identification.

Properties

NameDescription
firstName string
The person's first name (or given name).
middleName string
The person's middle name.
lastName string
The person's last name (or surname).
addresses [address]
An array of postal/mailing addresses.
preferredMailingAddressId string
The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
emailAddresses [typedEmailAddress]
An array of email addresses.
preferredEmailAddressId string
The preferred email address. This string is the _id of an email address in the emailAddresses array.
minLength: 1
maxLength: 4
phones [phoneNumber]
An array of phone numbers.
preferredPhoneId string
The ID of preferred phone number. This string is the _id of a phone number in the phones array.
minLength: 1
maxLength: 4
prefix string
A title or honorific prefix such as Dr. or Fr.
maxLength: 20
suffix string
A title or honorific suffix such as PhD or DDS.
maxLength: 20
preferredName string
The contact's preferred name. This is how the contact's name is presented to the user in the interface. The default is the contact's firstName.
identification [identification]
A collection of official identifying information associated with the contact.
preferredContactMethod preferredContactMethod
The contact's preferred method of communication.

organizationState

"pending"

Organization State (Version v1.0.0)

The state of this organization. The enumeration values are described by the organizationState value in the response of the getLabels operation.

NameDescription
Organization State string
The state of this organization. The enumeration values are described by the organizationState value in the response of the getLabels operation.


Enumerated values:
pending
inactive
active
merged
removed

Type: string
Enumerated values:
pending
inactive
active
merged
removed

estimatedAnnualRevenue

"unknown"

Estimated Annual Revenue (Version v1.0.0)

The estimated annual revenue in USD.

NameDescription
Estimated Annual Revenue string
The estimated annual revenue in USD.


Enumerated values:
unknown
under1Million
from1to10Million
from10to100Million
over100Million
other
notApplicable

Type: string
Enumerated values:
unknown
under1Million
from1to10Million
from10to100Million
over100Million
other
notApplicable

accountPurpose

"unknown"

Account purpose (Version v1.0.0)

The purpose of the account.

NameDescription
Account purpose string
The purpose of the account.


Enumerated values:
unknown
creditCardProcessing
generalOperatingFunds
lottery
payroll
savings
other
notApplicable

Type: string
Enumerated values:
unknown
creditCardProcessing
generalOperatingFunds
lottery
payroll
savings
other
notApplicable

identification

{
  "type": "taxId",
  "value": "111-11-1111",
  "expiration": {}
}

Identification (Version v1.0.0)

Official identifying information associated with the contact.

Properties

NameDescription
value string (required)
The value of this form of identification (the tax ID as a string, for example)
type string (required)
The type of this form of identification.


Enumerated values:
taxId
passportNumber

expiration string(date)
The date when the form of identification expires, in RFC 3339 YYYY-MM-DD format.

preferredContactMethod

"unknown"

Preferred Contact Method (Version v1.0.0)

The contact's preferred method of communication.

NameDescription
Preferred Contact Method string
The contact's preferred method of communication.


Enumerated values:
unknown
sms
email
other
notApplicable

Type: string
Enumerated values:
unknown
sms
email
other
notApplicable