NAV Navigation
Shell HTTP JavaScript Node.JS Ruby Python Java Go

Accounts v0.5.0

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.

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 or organization accounts (accounts for businesses, institutions, non-profits, etc.)

A user can list their existing accounts and see the balances of those accounts (based on entitlements) and may have permission to change the acount 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 retail (personal) accounts, the primary user is the account owner. Other users may be authorized to perform actions on the account, such as list balances, debits, or credits.

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.

Download OpenAPI Definition (YAML)

Base URLs:

Terms of service

Email: Apiture Web: Apiture

API

The Accounts API

getApi

Code samples

# You can also use wget
curl -X GET /accounts/ \
  -H 'Accept: application/hal+json'

GET /accounts/ HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json'

};

$.ajax({
  url: '/accounts/',
  method: 'get',

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

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

const headers = {
  'Accept':'application/hal+json'

};

fetch('/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'
}

result = RestClient.get '/accounts/',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json'
}

r = requests.get('/accounts/', params={

}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/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

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

OK

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

200 Response

{
  "id": "apiName",
  "name": "API name",
  "apiVersion": "0.0.1-SNAPSHOT",
  "_profile": "https://api.apiture.com/schemas/apiRoot/v1.0.0/profile.json",
  "_links": {}
}

Responses

StatusDescription
200 OK
OK
Schema: root

getApiDoc

Code samples

# You can also use wget
curl -X GET /accounts/apiDoc \
  -H 'Accept: application/json'

GET /accounts/apiDoc HTTP/1.1

Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: '/accounts/apiDoc',
  method: 'get',

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

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

const headers = {
  'Accept':'application/json'

};

fetch('/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'
}

result = RestClient.get '/accounts/apiDoc',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('/accounts/apiDoc', params={

}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/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

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline

Response Schema

Account

Bank Accounts

getAccounts

Code samples

# You can also use wget
curl -X GET /accounts/accounts \
  -H 'Accept: application/hal+json'

GET /accounts/accounts HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json'

};

$.ajax({
  url: '/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'

};

fetch('/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'
}

result = RestClient.get '/accounts/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json'
}

r = requests.get('/accounts/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/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.

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.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

start

limit

sortBy

filter

q

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/collection/account/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/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
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
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 /accounts/accounts \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json'

POST /accounts/accounts HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json'

};

$.ajax({
  url: '/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/account/v1.0.0/profile.json",
  "name": "My savings account",
  "_links": {
    "apiture:contact": {
      "href": "/contacts/contacts/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
    },
    "apiture:application": {
      "href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
    }
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json'

};

fetch('/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'
}

result = RestClient.post '/accounts/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json'
}

r = requests.post('/accounts/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/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 appoved account application which has not been used yet. The application also refers to a specific banking product with a type and 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/account/v1.0.0/profile.json",
  "name": "My savings account",
  "_links": {
    "apiture:contact": {
      "href": "/contacts/contacts/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
    },
    "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

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token

* body

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

201 Response

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

Responses

StatusDescription
201 Created
Created
Schema: accountNumbers
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

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 must 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 /accounts/accounts/{accountId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string'

GET /accounts/accounts/{accountId} HTTP/1.1

Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string'

};

$.ajax({
  url: '/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'

};

fetch('/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'
}

result = RestClient.get '/accounts/accounts/{accountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string'
}

r = requests.get('/accounts/accounts/{accountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/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.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

* accountId

If-None-Match

unmasked

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/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"
    },
    "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": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/product/v1.0.0/profile.json"
    }
  },
  "name": "My basic savings account",
  "productName": "Basic Personal Savings",
  "title": "John Smith",
  "type": "Personal Savings",
  "subtype": "Basic Personal Savings",
  "state": "active",
  "accountNumbers": {
    "masked": "*************2298"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "currency": "USD"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: account
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
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 must 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 /accounts/accounts/{accountId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

PATCH /accounts/accounts/{accountId} HTTP/1.1

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'

};

$.ajax({
  url: '/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/account/v1.0.0/profile.json",
  "name": "My basic savings account"
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string'

};

fetch('/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'
}

result = RestClient.patch '/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'
}

r = requests.patch('/accounts/accounts/{accountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/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/account/v1.0.0/profile.json",
  "name": "My basic savings account"
}

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. This must match the current entity tag of the resource.
body
(body)
updateAccount (required)

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPATCH
* URL
* API Key
* Access Token

* accountId

If-Match

* body

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/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"
    },
    "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": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/product/v1.0.0/profile.json"
    }
  },
  "name": "My basic savings account",
  "productName": "Basic Personal Savings",
  "title": "John Smith",
  "type": "Personal Savings",
  "subtype": "Basic Personal Savings",
  "state": "active",
  "accountNumbers": {
    "masked": "*************2298"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "currency": "USD"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: account
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
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
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.
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
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
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must 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 /accounts/accounts/{accountId}

DELETE /accounts/accounts/{accountId} HTTP/1.1


$.ajax({
  url: '/accounts/accounts/{accountId}',
  method: 'delete',

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

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

fetch('/accounts/accounts/{accountId}',
{
  method: 'DELETE'

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

require 'rest-client'
require 'json'

result = RestClient.delete '/accounts/accounts/{accountId}',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.delete('/accounts/accounts/{accountId}', params={

)

print r.json()

URL obj = new URL("/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() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/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 inactiviated or closed.

Parameters

Parameter Description
accountId
(path)
string (required)
The unique identifier of this account. This is an opaque string.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodDELETE
* URL
* API Key
* Access Token

* accountId

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
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.

activateAccount

Code samples

# You can also use wget
curl -X POST /accounts/activeAccounts?account=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

POST /accounts/activeAccounts?account=string HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

$.ajax({
  url: '/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'

};

fetch('/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'
}

result = RestClient.post '/accounts/activeAccounts',
  params: {
  'account' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string'
}

r = requests.post('/accounts/activeAccounts', params={
  'account': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/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. This must match the current entity tag of the resource.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token

* account

If-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/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"
    },
    "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": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/product/v1.0.0/profile.json"
    }
  },
  "name": "My basic savings account",
  "productName": "Basic Personal Savings",
  "title": "John Smith",
  "type": "Personal Savings",
  "subtype": "Basic Personal Savings",
  "state": "active",
  "accountNumbers": {
    "masked": "*************2298"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "currency": "USD"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: account
400 Bad Request
Bad Request. The account or accountUri parameter was malformed or does not refer to an account.
Schema: errorResponse
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
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
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

deactivateAccount

Code samples

# You can also use wget
curl -X POST /accounts/inactiveAccounts?account=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

POST /accounts/inactiveAccounts?account=string HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

$.ajax({
  url: '/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'

};

fetch('/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'
}

result = RestClient.post '/accounts/inactiveAccounts',
  params: {
  'account' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string'
}

r = requests.post('/accounts/inactiveAccounts', params={
  'account': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/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. This must match the current entity tag of the resource.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token

* account

If-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/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"
    },
    "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": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/product/v1.0.0/profile.json"
    }
  },
  "name": "My basic savings account",
  "productName": "Basic Personal Savings",
  "title": "John Smith",
  "type": "Personal Savings",
  "subtype": "Basic Personal Savings",
  "state": "active",
  "accountNumbers": {
    "masked": "*************2298"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "currency": "USD"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: account
400 Bad Request
Bad Request. The account or accountUri parameter was malformed or does not refer to an account.
Schema: errorResponse
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
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
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

freezeAccount

Code samples

# You can also use wget
curl -X POST /accounts/frozenAccounts?account=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

POST /accounts/frozenAccounts?account=string HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

$.ajax({
  url: '/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'

};

fetch('/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'
}

result = RestClient.post '/accounts/frozenAccounts',
  params: {
  'account' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string'
}

r = requests.post('/accounts/frozenAccounts', params={
  'account': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

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

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

Freeze an account

POST /frozenAccounts

Freze 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. This must match the current entity tag of the resource.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token

* account

If-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/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"
    },
    "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": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/product/v1.0.0/profile.json"
    }
  },
  "name": "My basic savings account",
  "productName": "Basic Personal Savings",
  "title": "John Smith",
  "type": "Personal Savings",
  "subtype": "Basic Personal Savings",
  "state": "active",
  "accountNumbers": {
    "masked": "*************2298"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "currency": "USD"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: account
400 Bad Request
Bad Request. The account or accountUri parameter was malformed or does not refer to an account.
Schema: errorResponse
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
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
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

closeAccount

Code samples

# You can also use wget
curl -X POST /accounts/closedAccounts?account=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

POST /accounts/closedAccounts?account=string HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

$.ajax({
  url: '/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'

};

fetch('/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'
}

result = RestClient.post '/accounts/closedAccounts',
  params: {
  'account' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string'
}

r = requests.post('/accounts/closedAccounts', params={
  'account': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/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. This must match the current entity tag of the resource.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token

* account

If-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/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"
    },
    "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": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/product/v1.0.0/profile.json"
    }
  },
  "name": "My basic savings account",
  "productName": "Basic Personal Savings",
  "title": "John Smith",
  "type": "Personal Savings",
  "subtype": "Basic Personal Savings",
  "state": "active",
  "accountNumbers": {
    "masked": "*************2298"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "currency": "USD"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: account
400 Bad Request
Bad Request. The account or accountUri parameter was malformed or does not refer to an account.
Schema: errorResponse
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
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
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

External Account

External Bank Accounts

getExternalAccounts

Code samples

# You can also use wget
curl -X GET /accounts/externalAccounts \
  -H 'Accept: application/hal+json'

GET /accounts/externalAccounts HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json'

};

$.ajax({
  url: '/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'

};

fetch('/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'
}

result = RestClient.get '/accounts/externalAccounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json'
}

r = requests.get('/accounts/externalAccounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/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.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

start

limit

sortBy

filter

q

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/collection/externalAccount/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/externalAccount/v1.0.0/profile.json",
        "type": "savings",
        "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
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
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 /accounts/externalAccounts \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json'

POST /accounts/externalAccounts HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json'

};

$.ajax({
  url: '/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/externalAccount/v1.0.0/profile.json",
  "name": "My account at 3rdParty Bank",
  "institutionName": "3rd Party Bank",
  "primaryUserName": "Lana Michaels",
  "type": "savings",
  "routingNumber": "021000021",
  "accountNumbers": {
    "full": "9876543210"
  },
  "_links": {
    "apiture:contact": {
      "href": "/contacts/contacts/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'

};

fetch('/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'
}

result = RestClient.post '/accounts/externalAccounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json'
}

r = requests.post('/accounts/externalAccounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/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/externalAccount/v1.0.0/profile.json",
  "name": "My account at 3rdParty Bank",
  "institutionName": "3rd Party Bank",
  "primaryUserName": "Lana Michaels",
  "type": "savings",
  "routingNumber": "021000021",
  "accountNumbers": {
    "full": "9876543210"
  },
  "_links": {
    "apiture:contact": {
      "href": "/contacts/contacts/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

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token

* body

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/externalAccount/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:productType": {
      "href": "/products/productTypes/0a8a1349-d652-4d5e-accc-047ec815d78a",
      "title": "Premier Personal Savings",
      "profile": "https://api.apiture.com/schemas/product/v1.0.0/profile.json"
    },
    "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/productType/v1.0.0/profile.json",
      "name": "savings",
      "label": "Personal Savings"
    }
  },
  "name": "My account at 3rdParty Bank",
  "type": "savings",
  "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
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
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 must 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 /accounts/externalAccounts/{externalAccountId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string'

GET /accounts/externalAccounts/{externalAccountId} HTTP/1.1

Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string'

};

$.ajax({
  url: '/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'

};

fetch('/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'
}

result = RestClient.get '/accounts/externalAccounts/{externalAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string'
}

r = requests.get('/accounts/externalAccounts/{externalAccountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/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.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

* externalAccountId

If-None-Match

unmasked

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/externalAccount/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:productType": {
      "href": "/products/productTypes/0a8a1349-d652-4d5e-accc-047ec815d78a",
      "title": "Premier Personal Savings",
      "profile": "https://api.apiture.com/schemas/product/v1.0.0/profile.json"
    },
    "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/productType/v1.0.0/profile.json",
      "name": "savings",
      "label": "Personal Savings"
    }
  },
  "name": "My account at 3rdParty Bank",
  "type": "savings",
  "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
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
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 must 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 /accounts/externalAccounts/{externalAccountId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

PATCH /accounts/externalAccounts/{externalAccountId} HTTP/1.1

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'

};

$.ajax({
  url: '/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/externalAccount/v1.0.0/profile.json",
  "name": "My primary savings account at 3rdParty Bank",
  "type": "savings",
  "state": "active",
  "routingNumber": "021000021",
  "institutionName": "3rd Party Bank",
  "primaryUserName": "Lana Michaels"
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string'

};

fetch('/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'
}

result = RestClient.patch '/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'
}

r = requests.patch('/accounts/externalAccounts/{externalAccountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/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, 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/externalAccount/v1.0.0/profile.json",
  "name": "My primary savings account at 3rdParty Bank",
  "type": "savings",
  "state": "active",
  "routingNumber": "021000021",
  "institutionName": "3rd Party Bank",
  "primaryUserName": "Lana Michaels"
}

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. This must match the current entity tag of the resource.
body
(body)
updateExternalAccount (required)

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPATCH
* URL
* API Key
* Access Token

* externalAccountId

If-Match

* body

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/externalAccount/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:productType": {
      "href": "/products/productTypes/0a8a1349-d652-4d5e-accc-047ec815d78a",
      "title": "Premier Personal Savings",
      "profile": "https://api.apiture.com/schemas/product/v1.0.0/profile.json"
    },
    "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/productType/v1.0.0/profile.json",
      "name": "savings",
      "label": "Personal Savings"
    }
  },
  "name": "My account at 3rdParty Bank",
  "type": "savings",
  "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
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
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
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.
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
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
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must 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 /accounts/externalAccounts/{externalAccountId} \
  -H 'Accept: application/hal+json'

DELETE /accounts/externalAccounts/{externalAccountId} HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json'

};

$.ajax({
  url: '/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'

};

fetch('/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'
}

result = RestClient.delete '/accounts/externalAccounts/{externalAccountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json'
}

r = requests.delete('/accounts/externalAccounts/{externalAccountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/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 inactiviated or removed from use.

Parameters

Parameter Description
externalAccountId
(path)
string (required)
The unique identifier of this external account. This is an opaque string.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodDELETE
* URL
* API Key
* Access Token

* externalAccountId

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

404 Response

{
  "_profile": "https://api.apiture.com/schemas/error/v1.0.0/.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/error/v1.0.0/profile.json",
    "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": "http://docs.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
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
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.

Schemas

accountNumbers

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

Account Numbers

Properties

Schema 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.

TODO Move this model schema to common-fin-models where it can be used in accountverifications and payments APIs
read-only
minLength: 9
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.
minLength: 9
maxLength: 32

summaryExternalAccountFields

{
  "name": "3rdParty Bank checking",
  "description": "My primary checking account at 3rdParty Bank",
  "institutionName": "3rd Party Bank",
  "primaryUserName": "Lucille Wellphunded",
  "title": "John Smith",
  "accountTitle": "John Smith",
  "type": "string",
  "routingNumber": "021000021",
  "state": "active"
}

Fields in External Account Sumamry Representations

Properties

Schema NameDescription
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. TODO: is 128 sufficient?
minLength: 2
maxLength: 128
primaryUserName string
The primary user or owner of the external account. Note: This can't be passed via a link to a user or contact, as this identity need not exist in our Users service.

TODO: Should this be an object with title, first/middle/last name, suffix? (Can we reuse a Name model from User resource, Contact resource?)

TODO: is 128 sufficient?
maxLength: 128

title string
The name of the account holder. This is derived from the contact resource.
maxLength: 512
accountTitle string
The name of the account holder. This is derived from the contact resource. Note: This property is deprecated. Use title instead. This property will be removed in the next release of this service.
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.)
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: 32
state string
The state of the external 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 eligble 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 acocunts.

To change the state of an account, POST the account URI 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

Property Value
state pending
state verifying
state failed
state active
state inactive
state frozen
state closed

externalAccountFields

{
  "name": "3rdParty Bank checking",
  "description": "My primary checking account at 3rdParty Bank",
  "institutionName": "3rd Party Bank",
  "primaryUserName": "Lucille Wellphunded",
  "title": "John Smith",
  "accountTitle": "John Smith",
  "type": "string",
  "routingNumber": "021000021",
  "state": "active",
  "accountNumbers": {
    "masked": "*************3210",
    "full": "9876543210"
  }
}

Fields in External Account Representations

Properties

Schema NameDescription
Fields in External Account Representations any
Fields of an external account resource.

allOf

Schema NameDescription
anonymous summaryExternalAccountFields
Fields of the representation of an external account summary resource.

and

Schema NameDescription
anonymous object
undefined
accountNumbers externalAccountNumbers
The account numbers necessary to link an external account.

externalAccountNumbers

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

External Account Numbers

Properties

Schema 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.

TODO Move this model schema to common-fin-models where it can be used in other APIs
read-only
minLength: 9
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: 9
maxLength: 32

createExternalAccountNumbers

{
  "full": "9876543210"
}

Create External Account Numbers

Properties

Schema 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: 9
maxLength: 32

summaryExternalAccount

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/externalAccount/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "My account at 3rdParty Bank",
  "type": "savings",
  "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

Properties

Schema NameDescription
External Account Summary any
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.

allOf

Schema NameDescription
anonymous abstractResource
An augmented HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

and

Schema NameDescription
anonymous summaryExternalAccountFields
Fields of the representation of an external account summary resource.

and

Schema NameDescription
anonymous object
undefined
_id string
The unique identifier for this external account resource. This is an immutable opaque string.
verifiedAt string(date-time)
The date-time when the external account was most recently verified. This is in RFC 3339 format, UTC.
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 account numbers necessary to link an external account.
attributes attributes
An optional map of name/value pairs which contains additional dynamic data about the resource.

createExternalAccount

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

Create External Account

Properties

allOf

Schema NameDescription
anonymous summaryExternalAccountFields
Fields of the representation of an external account summary resource.

and

Schema NameDescription
anonymous abstractResource
An augmented HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

and

Schema NameDescription
anonymous object
undefined
accountNumbers createExternalAccountNumbers
The account numbers necessary to link an external account.

updateExternalAccount

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/externalAccount/v1.0.0/profile.json",
  "name": "My primary savings account at 3rdParty Bank",
  "type": "savings",
  "state": "active",
  "routingNumber": "021000021",
  "institutionName": "3rd Party Bank",
  "primaryUserName": "Lana Michaels"
}

Update External Account

Properties

Schema NameDescription
Update External Account any
Representation used to update or patch an external account.

allOf

Schema NameDescription
anonymous summaryExternalAccount
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.

and

Schema NameDescription
anonymous externalAccountFields
Fields of an external account resource.

and

Schema NameDescription
anonymous object
undefined
accountNumbers externalAccountNumbers
Different representations of the account number.

externalAccount

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/externalAccount/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:productType": {
      "href": "/products/productTypes/0a8a1349-d652-4d5e-accc-047ec815d78a",
      "title": "Premier Personal Savings",
      "profile": "https://api.apiture.com/schemas/product/v1.0.0/profile.json"
    },
    "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/productType/v1.0.0/profile.json",
      "name": "savings",
      "label": "Personal Savings"
    }
  },
  "name": "My account at 3rdParty Bank",
  "type": "savings",
  "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

Properties

Schema NameDescription
External Account updateExternalAccount
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:productType - The link to the external account's product type. apiture:activate - Activate the account (POST) apiture:deactivate - Deactivate the account (POST) apiture:freeze - Freeze the account (POST) apiture:close - Close the account (POST)

externalAccounts

{
  "_profile": "https://api.apiture.com/schemas/collection/externalAccount/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/externalAccount/v1.0.0/profile.json",
        "type": "savings",
        "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

Properties

Schema NameDescription
External Account Collection any
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.)

allOf

Schema NameDescription
anonymous collection
A collection of resources.

and

Schema NameDescription
anonymous object
undefined
_embedded object
undefined
items [summaryExternalAccount]
An array containing a page of external account items.

accountFields

{
  "name": "string",
  "description": "string"
}

Account Fields

Properties

Schema NameDescription
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

summaryAccount

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/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 basic savings account",
  "state": "active",
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "currency": "USD"
  },
  "rate": {
    "value": "1.40",
    "type": "apr"
  }
}

Account Summary

Properties

Schema NameDescription
Account Summary any
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.

allOf

Schema NameDescription
anonymous abstractResource
An augmented HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

and

Schema NameDescription
anonymous accountFields
Fields of the account representations.

and

Schema NameDescription
anonymous object
undefined
_id string
The unique identifier for this account resource. This is an immutable opaque string.
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 eligble 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 acocunts.

To change the state of an account, POST the account URI 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.

title string
The name of the account holder. This is derived from the contact resource.
maxLength: 512
accountTitle string
The name of the account holder. This is derived from the contact resource. Note: This property is deprecated. Use title instead. This property will be removed in the next release of this service.
maxLength: 512
accountNumbers accountNumbers
Different representations of the account number.
balance balance
The account balance.
read-only
rate rate
The account's rate of return (for deposit account) or interest rate (for debut accounts).
read-only
attributes attributes
An optional map of name/value pairs which contains additional dynamic data about the resource.

Enumerated Values

Property Value
state pending
state active
state inactive
state frozen
state closed

createAccount

{
  "_profile": "https://api.apiture.com/schemas/account/v1.0.0/profile.json",
  "name": "My savings account",
  "_links": {
    "apiture:contact": {
      "href": "/contacts/contacts/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
    },
    "apiture:application": {
      "href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
    }
  }
}

Create Account

Properties

Schema NameDescription
Create Account any
Representation used to create a new account. The request should contain a link to an approved account application; the account type and product are extracted from that application resource, as are additional associations to people or organizations that should be attached to the account (such as co-owner, a business, etc.)

allOf

Schema NameDescription
anonymous accountFields
Fields of the account representations.

and

Schema NameDescription
anonymous abstractResource
An augmented HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

and

Schema NameDescription
anonymous object
undefined

updateAccount

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/account/v1.0.0/profile.json",
  "name": "My basic savings account"
}

Update Account

Properties

Schema NameDescription
Update Account any
Representation used to update or patch an account.

allOf

Schema NameDescription
anonymous summaryAccount
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.

and

Schema NameDescription
anonymous object
undefined

account

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/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"
    },
    "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": {
    "product": {
      "_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
      "_profile": "https://api.apiture.com/schemas/product/v1.0.0/profile.json"
    }
  },
  "name": "My basic savings account",
  "productName": "Basic Personal Savings",
  "title": "John Smith",
  "type": "Personal Savings",
  "subtype": "Basic Personal Savings",
  "state": "active",
  "accountNumbers": {
    "masked": "*************2298"
  },
  "balance": {
    "current": "3450.30",
    "available": "3450.30",
    "currency": "USD"
  }
}

Account

Properties

Schema NameDescription
Account any
Representation of an account resource. A banking account, which is an instance of a banking product

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:productType - The link to the external account's product type. apiture:activate - Activate the account (POST) apiture:deactivate - Deactivate the account (POST) apiture:freeze - Freeze the account (POST) apiture:close - Close the account (POST)

allOf

Schema NameDescription
anonymous updateAccount
Representation used to update or patch an account.

and

Schema NameDescription
anonymous object
undefined
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

accounts

{
  "_profile": "https://api.apiture.com/schemas/collection/account/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/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

Properties

Schema NameDescription
Account Collection any
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.)

allOf

Schema NameDescription
anonymous collection
A collection of resources.

and

Schema NameDescription
anonymous object
undefined
_embedded object
undefined
items [summaryAccount]
An array containing a page of account items.

abstractResource

{
  "_profile": "https://api.apiture.com/schemas/example/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "{uri of current resource}"
    }
  }
}

Abstract Resource

Properties

Schema 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.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.

collection

{
  "_profile": "https://api.apiture.com/schemas/example/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "{uri of current resource}"
    }
  },
  "count": 0,
  "start": 0,
  "limit": 0,
  "name": "string"
}

Collection

Properties

Schema NameDescription
Collection any
A collection of resources.

allOf

Schema NameDescription
anonymous abstractResource
An augmented HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

and

Schema NameDescription
anonymous object
undefined
count integer
The total number of items in the collection.
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.

root

{
  "id": "apiName",
  "name": "API name",
  "apiVersion": "0.0.1-SNAPSHOT",
  "_profile": "https://api.apiture.com/schemas/apiRoot/v1.0.0/profile.json",
  "_links": {}
}

API Root

Properties

Schema NameDescription
API Root any
A HAL response, with hypermedia _links for the top-level resources and operations in API.

allOf

Schema NameDescription
anonymous abstractResource
An augmented HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

and

Schema NameDescription
anonymous object
undefined
_id string
This API's unique ID.
name string
This API's name.
apiVersion string
This API's version.

errorResponse

{
  "_profile": "https://api.apiture.com/schemas/error/v1.0.0/.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/error/v1.0.0/profile.json",
    "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": "http://docs.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Error Response

Properties

Schema NameDescription
Error Response abstractResource
Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error object contains the error details.

error

{
  "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
  "_profile": "https://api.apiture.com/schemas/error/v1.0.0/profile.json",
  "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": "http://docs.apiture.com/errors/positiveNumberRequired"
    }
  },
  "_embedded": {
    "errors": []
  }
}

Error

Properties

Schema 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
Data attribute associated with the error, such as values or constraints.
remediation string
An optional localized string which provides hints for how the user or client can resolve the error.
_embedded object
Optional embedded array of errors. This field may not exist if the error does not have nested errors.
items [errorResponse]
An array of error objects.

attributes

{}

Attributes

Properties

No properties

{
  "property1": {
    "href": "http://example.com",
    "type": "string",
    "templated": true,
    "title": "string",
    "deprecation": "http://example.com",
    "profile": "http://example.com"
  },
  "property2": {
    "href": "http://example.com",
    "type": "string",
    "templated": true,
    "title": "string",
    "deprecation": "http://example.com",
    "profile": "http://example.com"
  }
}

Links

Properties

Schema 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.

{
  "href": "http://example.com",
  "type": "string",
  "templated": true,
  "title": "string",
  "deprecation": "http://example.com",
  "profile": "http://example.com"
}

Link

Properties

Schema 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.

balance

{
  "current": "3450.30",
  "available": "3450.30",
  "currency": "USD"
}

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

Schema NameDescription
current string
The string representation of the current account balance. This is an exact decimal representation of the numeric balance value. The current balance does not include pending transactions.
read-only
value string
The current balance. Note: This property is deprecated. Use balance.current instead. This property will be removed in the next release of this service.
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
currency string
The ISO 4217 currency code for this balance.
read-only

rate

{
  "value": "1.40",
  "type": "apr"
}

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

Schema NameDescription
value string
The rate, expressed as an decimal perscentage in order to represent the rate exactly.
read-only
type interestRateType
The interest rate type.
read-only

interestRateType

"apr"

*The rate type. Rate types are:

Properties

Schema NameDescription
anonymous string

The rate type. Rate types are:

  • apr - annual percentage rate
  • apy - annual percentage yield

Enumerated Values

Property Value
anonymous apr
anonymous apy