Accounts v0.55.1
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
The Accounts API manages banking accounts for bank customers. This API manages two primary types of resources:
- Accounts (or internal accounts) are those controlled by the financial institution (FI). Account holders can perform a various operations on such accounts: Users may view balances and account details, open new accounts, inactivate internal accounts, blocking new banking activity on the account until they re-ativate it. Users may also close accounts. The FI can freeze or unfreeze accounts if they suspect fraudulent or other malicious or suspicious activity. Users map also transfer money, view transactions, etc. using other Apiture APIs.
- External Accounts are accounts controlled by an external financial institution. These are also known as linked accounts. The user can perform fewer operations on external accounts, primarily scheduling transfers between and an external account and an internal account, using other Apiture APIs.
Accounts are instances of a banking product (see the Products API). The product defines the type, rate, terms, attributes, and capabilities of accounts attached to the product. Accounts may be either personal accounts (also known as retail accounts) or business accounts (accounts for businesses, institutions, trusts, non-profits, etc., also known as commercial accounts).
A user can list their existing accounts and see the balances of those accounts (based on entitlements) and may have permission to change the account name and label and description. Each account has a primary user, which is a bank user (via the Users service). The primary user has full management and entitlements for the account, receives mailings such as statements or tax documents.
For personal (retail) accounts, an account has a primary owner and may have additional joint owners. For business (commercial) accounts, the account owner is the business organization and one or more authorized signers who have account access entitlements.
Because the account number is sensitive data, it is not included by default in account representations. The masked account number is returned in the accountNumbers
object. To also receive the full account number when fetching an account, include the ?unmasked=true
option. When linking an external account, the full account number should be in the accountNumbers.full
property in the request. The accountNumbers.full
property is included with the 201 response of creating an account.
This API also manages additional resources which are associated with accounts. For personal accounts, one can get the list of owners (the primary owner and joint owners). The account owner can also view and update the account's beneficiaries. For business accounts, the account holders can view the account's authorized signers (those who have authorization to conduct activity against the account.)
Error Types
Error responses in this API may have one of the type
values described below.
See Errors for more information
on error responses and error types.
accountOwnerNotFound
Description: No joint owner was found for the specified {owner}.
Remediation: Ensure the supplied {owner} corresponds to an ownerresource.
activeExternalAccountLimitReached
Description: The active external account limit has been reached.
Remediation: Deactivate a unused external account and try again.
applicationUriNotSupplied
Description: A link to the account application was not supplied for the account.
Remediation: Include a link to a valid Apiture account application in the _links object of your request.
cannotDeleteSoleOwner
Description: The sole account owner cannot be deleted.
Remediation: Deleting account owners must leave at least one owner.
cannotPatchState
Description: The state field cannot be updated via PATCH.
Remediation: Resubmit the operation and leave state out of the request body.
cannotUpdateImmutableExternalAccountProperties
Description: Update operations may not change immutable properties of the external account unless the account state is pending
.
Remediation: Remove immutable properties from the request.
The attributes
object in the error may have the following properties:
Property | Type | Description |
---|---|---|
immutableProperties | [string] | Immutable properties that are in the request. |
cannotUpdateImmutableInternalAccountProperties
Description: Update operations may not change immutable properties of the internal account.
Remediation: Remove immutable properties from the request.
The attributes
object in the error may have the following properties:
Property | Type | Description |
---|---|---|
immutableProperties | [string] | Immutable properties that are in the request. |
consentNotGiven
Description: The user has not given consent to the selected product’s terms and conditions.
Remediation: User must give consent to the selected product's terms and conditions first before changing products.
contactUriNotSupplied
Description: A link to the contact was not supplied for the account.
Remediation: Include a link to a valid Apiture contact in the _links
object of your request.
duplicateExternalAccount
Description: An account resource with the same account number and routing number already exists.
Remediation: If the matching external account is closed or inactive, activate it.
duplicateTaxId
Description: A user with the given taxId already exists.
Remediation: Resubmit the operation with a unique taxId.
duplicateUser
Description: The owners or authorized signers contains a person more than one time.
Remediation: Remove duplicate users.
incompleteBeneficiary
Description: Beneficiary's individual or organization data incomplete.
Remediation: Specify all required data for each beneficiary.
internalError
Description: An unexpected internal server error occurred.
Remediation: Retry the operation again.
This error type may be included in error responses for the following HTTP status code: 5xx
invalidAccountAuthorizationType
Description: The request includes an authorization type not allowed for this type of account.
Remediation: Owners for personal accounts must have the type joint
or primary
. Authorized signers for business accounts must all have the type authorizedSigner
.
invalidAccountId
Description: No Accounts were found for the specified accountId
.
Remediation: Check to make sure that the supplied accountId
corresponds to an Apiture account resource.
invalidAccountReference
Description: The supplied account reference was malformed.
Remediation: Check to make sure that the supplied account
parameter corresponds to an Apiture account resource.
The attributes
object in the error may have the following properties:
Property | Type | Description |
---|---|---|
account | string | The malformed account parameter |
invalidAccountState
Description: Actions on accounts may only be performed if they are in one of the required states.
Remediation: Check the state of your Account and the applicable allowed state transitions in the Accounts API documentation.
The attributes
object in the error may have the following properties:
Property | Type | Description |
---|---|---|
currentState | string | The current state of the account.Example: pending |
requestedState | string | The new state value in the request.Example: frozen |
requiredStates | [string] | The set of states the account must be in for the requested state change to be valid. Example: active |
invalidAccountStateGrace
Description: The account is not active or it is not in the grace period.
Remediation: Ensure that the account is active and currently in the grace period.
invalidAccountType
Description: The account is not a CD and is thus not eligible for changing the banking product.
Remediation: Select an account that is a CD.
invalidApplication
Description: No account application resource was found for the specified apiture:application link.
Remediation: Check to make sure that the supplied application corresponds to an Apiture application resource.
invalidBeneficiaryOrganizationType
Description: Beneficiary organizations must be trusts or charities.
Remediation: Specify an organization that is a trust or charity.
invalidConsentId
Description: The specified consent can not be found.
Remediation: Resubmit request with a valid consentId
.
invalidContact
Description: No contact was found for the specified contact.
Remediation: Check to make sure that the supplied contactId
corresponds to an Apiture contact resource.
invalidInterestTargetAccount
Description: The account designated for disbursing interest is an invalid URI or not an eligible account.
Remediation: Submit a request with a `apiture:interestTargetAccount link of an account that is active and is eligible for deposits.
The attributes
object in the error may have the following properties:
Property | Type | Description |
---|---|---|
interestTargetUri | string | The URI of the transfer target account. |
invalidOrganization
Description: No organization was found for the specified organization.
Remediation: Check to make sure that the supplied organization corresponds to an Apiture organization resource.
invalidOrganizationState
Description: An account may not be created with an organization that is not in an active
state.
Remediation: Please contact your administrator regarding the non-active organization.
invalidProduct
Description: No Products were found for the specified product.
Remediation: Check to make sure that the supplied product corresponds to an Apiture product resource.
invalidProductId
Description: The specified product can not be found.
Remediation: Resubmit the request with an active product.
invalidProductTarget
Description: The product target (personal or business) does not match the current account.
Remediation: Select a product that matches the current type for the account.
invalidProductType
Description: The selected product is not an active CD product.
Remediation: Select an active CD product.
invalidQueryParameterCombination
Description: Do not use mutually exclusive query parameters.
Remediation: Use one or the other, but not both.
The attributes
object in the error may have the following properties:
Property | Type | Description |
---|---|---|
mutuallyExclusiveQueryParameters | [string] | undefined Example: state,openable |
invalidRolloverProduct
Description: The rollover product is not an openable deposit account product.
Remediation: Submit a request with a rollover product that is openable (active and available for new account opening), and is eligible for deposits or initial funding.
The attributes
object in the error may have the following properties:
Property | Type | Description |
---|---|---|
rolloverProductUri | string | The URI of the rollover product. |
invalidRoutingNumber
Description: The routing number was malformed.
Remediation: Use the correct routing number of the financial institution.
invalidTransferTargetAccount
Description: The account designated for transferring principal and/or interest upon Certificate of Deposit (CD, a.k.a. Time Deposit) account maturity is an invalid URI or not a deposit account.
Remediation: Submit a request with a apiture:transferTargetAccount
link to a target account that is active and is eligible for deposits or initial funding.
The attributes
object in the error may have the following properties:
Property | Type | Description |
---|---|---|
transferTargetUri | string | The URI of the transfer target account |
invalidUnmaskedQueryParam
Description: Only the values of false or true can be supplied with the unmasked query parameter.
Remediation: Resubmit the operation without the query parameter or check the documentation for valid query params.
invalidUser
Description: No user was found for the specified user.
Remediation: Check to make sure that the supplied userId
corresponds to an Apiture user resource.
malformedRequestBody
Description: The supplied request body was malformed.
Remediation: Check to make sure that your request body exists and that it does not contain syntax errors.
noBeneficiariesOnBusinessAccounts
Description: Business accounts do not have beneficiaries.
Remediation: Request beneficiaries only on personal accounts.
notExactlyOnePrimaryOwner
Description: The owners must contain exactly one primary owner.
Remediation: Retry the request with exactly one primary owner.
organizationUriNotSupplied
Description: A link to the organization was not supplied for the account.
Remediation: Include a link to a valid Apiture organization in the _links object of your request.
percentagesNotEqual100
Description: If beneficiaries are listed, the sum of percentages should equal 100.
Remediation: Adjust the percentages to total 100.
productUriNotSupplied
Description: A link to the product was not supplied for the account.
Remediation: Include a link to a valid Apiture product in the _links
object of your request.
unsatisfiedProductConstraints
Description: The account does not satisfy the minimum or maximum balance or other constraints of the selected product.
Remediation: Select a product with constraints that the account satisfies.
unverifiedUser
Description: A owner or authorized signers in the request is not a valid user or has not been verified.
Remediation: Retry the request with only valid, verified users.
userUriNotSupplied
Description: A link to the user was not supplied for the account.
Remediation: Include a link to a valid Apiture user in the _links
object of your request.
wrongConsent
Description: The consentId
is not consent for the terms and conditions associated with the product.
Remediation: Resubmit the request with the correct consentId
.
Download OpenAPI Definition (YAML)
Base URLs:
Authentication
- API Key (
apiKey
)- header parameter: API-Key
- API Key based authentication. Each client application must pass its private, unique API key, allocated in the developer portal, via the
API-Key: {api-key}
request header.
- OAuth2 authentication (
accessToken
)- OAuth2 client access token authentication. The client authenticates against the server at
authorizationUrl
, passing the client's privateclientId
(and optionalclientSecret
) as part of this flow. The client obtains an access token from the server attokenUrl
. It then passes the received access token via theAuthorization: Bearer {access-token}
header in subsequent API calls. The authorization process also returns a refresh token which the client should use to renew the access token before it expires. - Flow:
authorizationCode
- Authorization URL = https://auth.devbank.apiture.com/auth/oauth2/authorize
- Token URL = https://api.devbank.apiture.com/auth/oauth2/token
- OAuth2 client access token authentication. The client authenticates against the server at
Scope | Scope Description |
---|---|
banking/read |
Read access to accounts and account-related resources such as transfers and transactions. |
banking/write |
Write (update) access to accounts and account-related resources such as transfers and transactions. |
banking/delete |
Delete access to deletable accounts and account-related resources such as transfers. |
banking/readBalance |
Read access to account balances. This must be granted in addition to the apiture/readBanking scope in order to view balances, but is included in the banking/full scope. |
banking/full |
Full access to accounts and account-related resources such as transfers and transactions. |
Accounts
Bank Accounts
createPaymentProviderParameters
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/paymentProviderParameters?account=string&issuer=string \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/paymentProviderParameters?account=string&issuer=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/paymentProviderParameters',
method: 'post',
data: '?account=string&issuer=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/paymentProviderParameters?account=string&issuer=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',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/paymentProviderParameters',
params: {
'account' => 'string',
'issuer' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/paymentProviderParameters', params={
'account': 'string', 'issuer': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/paymentProviderParameters?account=string&issuer=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"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/paymentProviderParameters", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Generate payment provider parameters
POST /paymentProviderParameters
This operation generates parameters to allow integration with a client-embedded secure payment provider application component. The response is based on the current user, account, and provider name. There is no request body for this operation. The operation may take several seconds, so this operation may continue to process the request asynchronously, returning a 202 response code and Retry-After
. After that retry delay, the client should try again until the operation returns a 200 response.
The operation createPaymentProviderParameters
was added on version 0.46.0
of the API.
Parameters
Parameter | Description |
---|---|
account (query) |
string (required) The resource identifier of an existing, active account. This is the account's _id property, not the account number. |
issuer (query) |
string (required) The name of the payment provider, such as payrailz . This string is a lower camel case identifier. This determines which provider parameters to return to the client. |
Try It
Example responses
201 Response
{
"_profile": "https://api.apiture.com/schemas/accounts/paymentProviderParameters/v1.0.1/profile.json",
"issuer": "payrailz",
"parameters": [
{
"name": "ssoToken",
"value": "cd8775f7f49a/408a|9afa-982a78bd08bd::7466c8c38489/4541|b695/af7ac2ba4537"
},
{
"name": "refreshToken",
"value": "130d1a7d_fa0c/453a|86a9_93c411a9df3a::5f1d4ade5c34/40e4|8098/493475dd0c92"
},
{
"name": "fspId",
"value": "cPsSsLTx-2982-zkztbwEP"
},
{
"name": "payerId",
"value": "05df5b59-83e4-4f79-8002-42ddbf415feb"
}
]
}
Responses
Status | Description |
---|---|
201 | Created |
Created. The response contains the parameters to integrate with the payment provider components. | |
Schema: paymentProviderParameters | |
202 | Accepted |
Accepted. The request has been accepted but could not complete in a timely manner. Retry the operation after waiting the number of seconds specified in the Retry-After response header. The returned response body has an empty parameters array. | |
Schema: paymentProviderParameters |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The parameters are not well-formed. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The parameters, while well-formed, are invalid. This error response may have one of the following | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
202 | Retry-After string |
Indicates a suggested delay in seconds after which the client should retry the operation. Example: |
getAccounts
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/accounts HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/accounts', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of accounts
GET /accounts
Return a paginated sortable filterable searchable collection of accounts. The links in the response include pagination links.
By default, the items in the collection return a subset of the accounts fields, as described in the summaryAccount
schema. To include all fields in an account, use the ?fields=*
query parameter.
If ?embed=owners
is used, each summary account representation in the _embedded.items
array will embed the account owners or the authorized signers and owning organization.
Administrative applications may use searchAccounts
to find accounts by account number.
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. Default: 100 |
sortBy (query) |
string Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2 .This collection may be sorted by following properties: • state • type • subtype • name • productName |
state (query) |
string Subset the accounts or external accounts collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending matches only items whose state is pending ; ?state=removed|inactive matches items whose state is removed or inactive . This is combined with an implicit and with other filters if they are used. See filtering. Enumerated values: pending active inactive frozen closed |
type (query) |
string Subset the accounts or external accounts collection to those with this exact type value. Use | to separate multiple values. For example, ?type=Personal%20Savings matches only items whose type is Personal Savings ; ?type=Personal%20Savings|Investment%20Account matches items whose type is Personal Savings or Investment Account . This is combined with an implicit and with other filters if they are used. See filtering. |
subtype (query) |
string Subset the accounts or external accounts collection to those with this exact subtype value. For example, ?subtype=true will limit the response to only product types which are subtypes. Use | to separate multiple values. For example, ?subtype=Basic%20Personal%20Savings matches only items whose subtype is Basic Personal Savings ; ?subtype=Basic%20Personal%20Savings|Basic%20Investment%20Account matches items whose subtype is Basic Personal Savings or Basic Investment Account . This is combined with an implicit and with other filters if they are used. See filtering. |
name (query) |
string Subset the accounts or external accounts collection to those with this name value. Use | to separate multiple values. For example, ?name=Bartell matches only items whose name is Bartell ; ?name=Bartell|kirsten matches items whose name is Bartell or kirsten . This is combined with an implicit and with other filters if they are used. See filtering. |
productName (query) |
string Subset the accounts collection to those with this productName value. Use | to separate multiple values. For example, ?productName=Basic%20Personal%20Savings matches only items whose productName is Basic Personal Savings ; ?productName=Basic%20Personal%20Savings|Basic%20Investment%20Account matches items whose productName is Basic Personal Savings or inactive . This is combined with an implicit and with other filters if they are used. See filtering. |
organization (query) |
string Subset the accounts collection to those accounts owned by the organization represented by the uri organization value. This is combined with an implicit and with other filters if they are used. See filtering. |
filter (query) |
string Optional filter criteria. See filtering. This collection may be filtered by following properties and functions: • Property state using functions eq , ne , in • Property type using functions eq , ne , in • Property subtype using functions eq , ne , in • Property name using functions eq , ne , lt , le , gt , ge , startsWith , endsWith , contains , search • Property productName using functions eq , ne , lt , le , gt , ge , startsWith , endsWith , contains , search • Property _id using functions eq , in • Property organization using functions eq |
q (query) |
string Optional search string. See searching. |
unmasked (query) |
boolean When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true , to request that the response body includes the full account number. Such requests are auditable. |
fields (query) |
string Select which fields to include in each account in the collection's _embedded.items array. By default, a subset of all the fields in the account are returned (detailed in the summaryAccount schema). Use the value * to request all the fields in the account. Note that there is a performance impact of requesting this, since the account balance and interest (year to date) may require additional computation. |
activeBetween (query) |
string Limit the response to only accounts that are (or were) active between two dates, inclusive. The format of the query parameter is start-date,end-date where each date is in RFC 3339 date format, YYYY-MM-DD . The response includes accounts which became active on or before the end date and which were not closed before the start date. Example: ?activeBetween=2019-03-01,2019-03-31 . This option may be combined with ?embed=owners . Note: This option is limited to administrative use. |
embed (query) |
array[string] If set, each account in the _embedded.items array will include additional embedded objects. The embed query parameter specifies which related resources to include in the _embedded object in each account in response. embed supports the following values:
?activeBetween . |
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/accounts/accounts/v2.6.0/profile.json",
"start": "10",
"limit": 10,
"count": 67,
"name": "accounts",
"_links": {
"self": {
"href": "/accounts/accounts?start=10&limit=10"
},
"first": {
"href": "/accounts/accounts?start=0&limit=10"
},
"next": {
"href": "/accounts/accounts?start=20&limit=10"
},
"collection": {
"href": "/accounts/accounts"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v2.6.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"
},
"paymentsEnabled": false,
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: accounts |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. Query parameters are in conflict. Do not use both This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createAccount
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/accounts \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/accounts HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_profile": "https://api.apiture.com/schemas/accounts/createAccount/v1.0.0/profile.json",
"name": "My car savings account",
"description": "My savings account used to save for a new car, opened in 2019. I try to put $550/month into this account.",
"_links": {
"apiture:user": {
"href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:organization": {
"href": "/organizations/organizations/a1c9212c-0a5c-4779-a3fc-95e1c1e92e71"
},
"apiture:application": {
"href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/accounts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/accounts', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/accounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new account.
POST /accounts
Create a new banking account. The request body must contain a link to an active product, user, organization (for a business account), and may contain an approved application. The required resource links are detailed in the createAccount
schema used for the request body. The application will be linked to the account and can be identifiable with the account. The product provides specific banking information like the type of product and it's subtype; the new account will adopt the terms and attributes of that banking product. If a name is not included in the request, the product name will be used to provide a unique name for this user. The account will be created in the pending
state (which allows deletion of the account). A successful operation returns the full account number.
Body parameter
{
"_profile": "https://api.apiture.com/schemas/accounts/createAccount/v1.0.0/profile.json",
"name": "My car savings account",
"description": "My savings account used to save for a new car, opened in 2019. I try to put $550/month into this account.",
"_links": {
"apiture:user": {
"href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:organization": {
"href": "/organizations/organizations/a1c9212c-0a5c-4779-a3fc-95e1c1e92e71"
},
"apiture:application": {
"href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
}
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
createAccount (required) The data necessary to create a new account. |
Try It
Example responses
201 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v2.6.0/profile.json",
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
}
},
"name": "My savings",
"description": "My Basic savings account",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"title": "John Smith",
"ifxType": "SDA",
"allowsTransfers": true,
"accountNumbers": {
"full": "9876543210",
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"currency": "USD"
},
"openedAt": "2019-04-30T10:01:07.375Z",
"paymentsEnabled": false,
"checkOrderingEnabled": false
}
Responses
Status | Description |
---|---|
201 | Created |
Created. | |
Schema: summaryAccount |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following
| |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request attempted to create an account when a dependent resource is not in a correct state, such as the organization being in a state other than 'active'. This error response may have one of the following | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
201 | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
201 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource. |
getAccount
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts/{accountId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/accounts/{accountId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/accounts/{accountId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts/{accountId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this account
GET /accounts/{accountId}
Return a HAL representation of this account resource.
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
unmasked (query) |
boolean When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true , to request that the response body includes the full account number. Such requests are auditable. |
embed (query) |
array[string] The embed query parameter specifies which related resources to include in the _embedded object in the response. embed supports the following comma-separated values:
owners and beneficiaries for personal accounts use GET .../accounts/{accountId}?embed=owners,beneficiaries . To embed the banking product, the owning business, authorized signers for business accounts, use GET .../accounts/{accountId}?embed=product,owners,authorizedSigners . |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v2.7.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rates": {
"apy": "1.24",
"apye": "1.24",
"nominal": "1.242",
"promotional": false
},
"openedAt": "2019-04-30T10:01:07.375Z",
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"cd": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1Y",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings",
"transferAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"inDebitGracePeriod": true,
"inCreditGracePeriod": true,
"gracePeriodDebitEndsAt": "2020-07-30T04:59:59.000Z",
"gracePeriodCreditEndsAt": "2020-07-30T04:59:59.000Z"
},
"cycleWithdrawalCount": 0,
"interestTargetAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"paymentsEnabled": false,
"checkOrderingEnabled": false,
"coreBanking": {
"finxact": {
"positionId": "--4WS6jKGGlD4u-----5F-Bg-"
}
},
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.1.1/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:acceptApyOffer": {
"href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: account |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
patchAccount
Code samples
# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/accounts/accounts/{accountId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.devbank.apiture.com/accounts/accounts/{accountId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v2.7.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rates": {
"apy": "1.24",
"apye": "1.24",
"nominal": "1.242",
"promotional": false
},
"openedAt": "2019-04-30T10:01:07.375Z",
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"cd": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1Y",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings",
"transferAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"inDebitGracePeriod": true,
"inCreditGracePeriod": true,
"gracePeriodDebitEndsAt": "2020-07-30T04:59:59.000Z",
"gracePeriodCreditEndsAt": "2020-07-30T04:59:59.000Z"
},
"cycleWithdrawalCount": 0,
"interestTargetAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"paymentsEnabled": false,
"checkOrderingEnabled": false,
"coreBanking": {
"finxact": {
"positionId": "--4WS6jKGGlD4u-----5F-Bg-"
}
},
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.1.1/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:acceptApyOffer": {
"href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.devbank.apiture.com/accounts/accounts/{accountId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/accounts/accounts/{accountId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this account
PATCH /accounts/{accountId}
Perform a partial update 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
, or closeAccount
which are available in the _links
on an account instance.
Body parameter
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v2.7.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rates": {
"apy": "1.24",
"apye": "1.24",
"nominal": "1.242",
"promotional": false
},
"openedAt": "2019-04-30T10:01:07.375Z",
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"cd": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1Y",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings",
"transferAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"inDebitGracePeriod": true,
"inCreditGracePeriod": true,
"gracePeriodDebitEndsAt": "2020-07-30T04:59:59.000Z",
"gracePeriodCreditEndsAt": "2020-07-30T04:59:59.000Z"
},
"cycleWithdrawalCount": 0,
"interestTargetAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"paymentsEnabled": false,
"checkOrderingEnabled": false,
"coreBanking": {
"finxact": {
"positionId": "--4WS6jKGGlD4u-----5F-Bg-"
}
},
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.1.1/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:acceptApyOffer": {
"href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource. |
body (body) |
account (required) |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v2.7.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rates": {
"apy": "1.24",
"apye": "1.24",
"nominal": "1.242",
"promotional": false
},
"openedAt": "2019-04-30T10:01:07.375Z",
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"cd": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1Y",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings",
"transferAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"inDebitGracePeriod": true,
"inCreditGracePeriod": true,
"gracePeriodDebitEndsAt": "2020-07-30T04:59:59.000Z",
"gracePeriodCreditEndsAt": "2020-07-30T04:59:59.000Z"
},
"cycleWithdrawalCount": 0,
"interestTargetAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"paymentsEnabled": false,
"checkOrderingEnabled": false,
"coreBanking": {
"finxact": {
"positionId": "--4WS6jKGGlD4u-----5F-Bg-"
}
},
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.1.1/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:acceptApyOffer": {
"href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: account |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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. |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
deleteAccount
Code samples
# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/accounts/accounts/{accountId} \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
DELETE https://api.devbank.apiture.com/accounts/accounts/{accountId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://api.devbank.apiture.com/accounts/accounts/{accountId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/accounts/accounts/{accountId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this account resource
DELETE /accounts/{accountId}
Delete this account resource and any resources that are owned by it. Note that only pending
accounts may be deleted. Once an account has been activated, it cannot be deleted, only inactivated or closed.
Parameters
Parameter | Description |
---|---|
If-Match (header) |
string The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource. |
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
Try It
Example responses
412 Response
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.0.0/profile.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://api.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Status | Description |
---|---|
409 | Conflict |
Conflict. the request attempted to change the state in an incompatible way, such as an attempt to change the state from This error response may have one of the following |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
generateVerificationLetter
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter \
-H 'Accept: application/hal+json' \
-H 'Accept: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
Accept: string
var headers = {
'Accept':'application/hal+json',
'Accept':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'Accept':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'Accept' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'Accept': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"Accept": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Generate the account verification letter
POST /accounts/{accountId}/verificationLetter
Generate the account verification letter for this internal account.
If the letter has not been generated, this returns 202 Accepted and no response body. The response will include a Retry-After
response header with a recommended retry interval in seconds.
If the letter has been generated for this account, the operations returns 200 OK and the response body is the PDF formatted account verification letter.
For personal accounts, only the primary and joint owners may invoke this operation.
For business accounts, only the authorized signers associated with the owning business organization may invoke this operation.
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
Accept (header) |
string Optional. Only application/pdf is currently supported. |
Try It
Example responses
404 Response
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.0.0/profile.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://api.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
406 Response
Responses
Status | Description |
---|---|
200 | OK |
OK. The request has succeeded. | |
202 | Accepted |
Accepted. The request has been accepted for processing, but the processing has not been completed. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
406 | Not Acceptable |
Not Acceptable. Indicates that the server cannot produce a response matching the list of acceptable values defined in the request's headers. This operation only supports Accept: application/pdf . | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | Content-Type string |
When the letter is available, the response body will be the PDF formatted account verification letter for this account. | |
202 | Retry-After string |
Indicates a suggested delay in seconds after which the client should retry the operation. Example: Retry-After: 10 |
updateAccountProduct
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/accounts/{accountId}/product \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/accounts/{accountId}/product HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/product',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_links": {
"property1": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
},
"property2": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
}
},
"_embedded": {}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/product',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/product',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/accounts/{accountId}/product', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/product");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/product", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Change the account's product
POST /accounts/{accountId}/product
Change the account’s banking product. This applies only to personal and business CD accounts that are in their grace period (immediately following maturity). The new product must also be a CD product, and the account must satisfy the minimum and maximum balance and other constraints of the new product.
Body parameter
{
"_links": {
"property1": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
},
"property2": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
}
},
"_embedded": {}
}
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
body (body) |
updateAccountProduct (required) The data necessary to update a product on an account. |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v2.7.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rates": {
"apy": "1.24",
"apye": "1.24",
"nominal": "1.242",
"promotional": false
},
"openedAt": "2019-04-30T10:01:07.375Z",
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"cd": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1Y",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings",
"transferAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"inDebitGracePeriod": true,
"inCreditGracePeriod": true,
"gracePeriodDebitEndsAt": "2020-07-30T04:59:59.000Z",
"gracePeriodCreditEndsAt": "2020-07-30T04:59:59.000Z"
},
"cycleWithdrawalCount": 0,
"interestTargetAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"paymentsEnabled": false,
"checkOrderingEnabled": false,
"coreBanking": {
"finxact": {
"positionId": "--4WS6jKGGlD4u-----5F-Bg-"
}
},
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.1.1/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:acceptApyOffer": {
"href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: account |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Request conflict. The request conflicts with the required constraints for changing an account’s product. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
searchAccounts
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/accountSearch \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/accountSearch HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accountSearch',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_profile": "https://api.apiture.com/schemas/accounts/accountSearch/v1.0.0/profile.json",
"accountNumber": "9876543210"
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accountSearch',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/accountSearch',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/accountSearch', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accountSearch");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/accountSearch", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Find an account by account number.
POST /accountSearch
Use this operation to find an account by the full banking account number. Each resource in the _embedded.items
array is a summary representation of an account; use the getAccount
operation on the summary's self
link to get the full representation of the account and all available links. If no account matches, the response has an empty (but not null
) _embedded.items
array.
This operations uses a "GET
over POST
" pattern so that personally sensitive information (full account numbers) are transmitted securely in the request body and not in the request URL as query parameters. Like a GET
, this operation is idempotent and safe.
This operation is only allowed for trusted services or administrators. For banking customers, use getAccounts
with ?unmasked=true
to list all accounts for the user, and the client can filter the small result set by account number.
Body parameter
{
"_profile": "https://api.apiture.com/schemas/accounts/accountSearch/v1.0.0/profile.json",
"accountNumber": "9876543210"
}
Parameters
Parameter | Description |
---|---|
body (body) |
accountSearch (required) Account search parameters. |
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/accounts/accounts/v2.6.0/profile.json",
"start": "10",
"limit": 10,
"count": 67,
"name": "accounts",
"_links": {
"self": {
"href": "/accounts/accounts?start=10&limit=10"
},
"first": {
"href": "/accounts/accounts?start=0&limit=10"
},
"next": {
"href": "/accounts/accounts?start=20&limit=10"
},
"collection": {
"href": "/accounts/accounts"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v2.6.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"
},
"paymentsEnabled": false,
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: accounts |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
searchExternalAccounts
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/externalAccountSearch \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/externalAccountSearch HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccountSearch',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_profile": "https://api.apiture.com/schemas/accounts/accountSearch/v1.0.0/profile.json",
"accountNumber": "9876543210"
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccountSearch',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/externalAccountSearch',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/externalAccountSearch', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccountSearch");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/externalAccountSearch", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Find an external account by account number.
POST /externalAccountSearch
Use this operation to find an external account by the full banking account number. Each resource in the _embedded.items
array is a summary representation of an account; use the getExternalAccount
operation on the summary's self
link to get the full representation of the external account and all available links. If no account matches, the response has an empty (but not null
) _embedded.items
array.
This operations uses a "GET
over POST
" pattern so that personally sensitive information (full account numbers) are transmitted securely in the request body and not in the request URL as query parameters. Like a GET
, this operation is idempotent and safe.
This operation is only allowed for trusted services or administrators. For banking customers, use getExternalAccounts
with ?unmasked=true
to list all external accounts for the user, and the client can filter the small result set by account number.
Body parameter
{
"_profile": "https://api.apiture.com/schemas/accounts/accountSearch/v1.0.0/profile.json",
"accountNumber": "9876543210"
}
Parameters
Parameter | Description |
---|---|
body (body) |
accountSearch (required) Account search parameters. |
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/accounts/externalAccounts/v1.1.0/profile.json",
"start": "10",
"limit": 10,
"count": 67,
"name": "external accounts",
"_links": {
"self": {
"href": "/accounts/externalAccounts?start=10&limit=10"
},
"first": {
"href": "/accounts/externalAccounts?start=0&limit=10"
},
"next": {
"href": "/accounts/externalAccounts?start=20&limit=10"
},
"collection": {
"href": "/accounts/externalAccounts"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My account at 3rdParty Bank",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.1.1/profile.json",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"institutionName": "3rdParty Bank",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
},
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: externalAccounts |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
Account Actions
Actions on Bank Accounts
activateAccount
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/activeAccounts?account=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/activeAccounts?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/activeAccounts',
method: 'post',
data: '?account=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/activeAccounts?account=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/activeAccounts',
params: {
'account' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/activeAccounts', params={
'account': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/activeAccounts?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/activeAccounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Activate an account
POST /activeAccounts
Activate an account, making it available for use. Customers can only activate internal accounts which are pending
. Customers can only activate external accounts which are inactive
if the user has not reached the maximum number of active external accounts. Administrators can activate internal accounts from any state except closed
, and can activate external accounts in any state as long as the user has not reached the maximum number of active external accounts.
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
. See also deactivateAccount
. This operation is a no-op if the account is already active.
Parameters
Parameter | Description |
---|---|
account (query) |
string (required) A server-supplied value which identifies the account instance. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource. |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v2.7.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rates": {
"apy": "1.24",
"apye": "1.24",
"nominal": "1.242",
"promotional": false
},
"openedAt": "2019-04-30T10:01:07.375Z",
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"cd": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1Y",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings",
"transferAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"inDebitGracePeriod": true,
"inCreditGracePeriod": true,
"gracePeriodDebitEndsAt": "2020-07-30T04:59:59.000Z",
"gracePeriodCreditEndsAt": "2020-07-30T04:59:59.000Z"
},
"cycleWithdrawalCount": 0,
"interestTargetAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"paymentsEnabled": false,
"checkOrderingEnabled": false,
"coreBanking": {
"finxact": {
"positionId": "--4WS6jKGGlD4u-----5F-Bg-"
}
},
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.1.1/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:acceptApyOffer": {
"href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: account |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
deactivateAccount
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/inactiveAccounts?account=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/inactiveAccounts?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/inactiveAccounts',
method: 'post',
data: '?account=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/inactiveAccounts?account=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/inactiveAccounts',
params: {
'account' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/inactiveAccounts', params={
'account': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/inactiveAccounts?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/inactiveAccounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Deactivate an account
POST /inactiveAccounts
Deactivate an account that is eligible to be deactivated. Customer users may deactivate only external accounts which are ``active. Financial Institution administrators may deactivate internal accounts in any state except
closed, or deactivate external accounts that are in any state. This operation is invoked from the
apiture:deactivatelink on an account; the link only exists if the action is allowed. This changes the
stateto
inactive. See also the [
activateAccount`](#op-activateAccount) operation. This operation is a no-op if the account is already inactive.
Parameters
Parameter | Description |
---|---|
account (query) |
string (required) A server-supplied value which identifies the account instance. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource. |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v2.7.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rates": {
"apy": "1.24",
"apye": "1.24",
"nominal": "1.242",
"promotional": false
},
"openedAt": "2019-04-30T10:01:07.375Z",
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"cd": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1Y",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings",
"transferAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"inDebitGracePeriod": true,
"inCreditGracePeriod": true,
"gracePeriodDebitEndsAt": "2020-07-30T04:59:59.000Z",
"gracePeriodCreditEndsAt": "2020-07-30T04:59:59.000Z"
},
"cycleWithdrawalCount": 0,
"interestTargetAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"paymentsEnabled": false,
"checkOrderingEnabled": false,
"coreBanking": {
"finxact": {
"positionId": "--4WS6jKGGlD4u-----5F-Bg-"
}
},
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.1.1/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:acceptApyOffer": {
"href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: account |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
freezeAccount
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/frozenAccounts?account=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/frozenAccounts?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/frozenAccounts',
method: 'post',
data: '?account=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/frozenAccounts?account=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/frozenAccounts',
params: {
'account' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/frozenAccounts', params={
'account': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/frozenAccounts?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/frozenAccounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Freeze an account
POST /frozenAccounts
Freeze an account, blocking all banking activity on the account. Only administrators can freeze accounts, and only if the account state is not closed
. 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
. Financial Institution administrators can unfreeze accounts with the activateAccount
operation. This operation is a no-op if the account is already frozen.
Parameters
Parameter | Description |
---|---|
account (query) |
string (required) A server-supplied value which identifies the account instance. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource. |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v2.7.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rates": {
"apy": "1.24",
"apye": "1.24",
"nominal": "1.242",
"promotional": false
},
"openedAt": "2019-04-30T10:01:07.375Z",
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"cd": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1Y",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings",
"transferAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"inDebitGracePeriod": true,
"inCreditGracePeriod": true,
"gracePeriodDebitEndsAt": "2020-07-30T04:59:59.000Z",
"gracePeriodCreditEndsAt": "2020-07-30T04:59:59.000Z"
},
"cycleWithdrawalCount": 0,
"interestTargetAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"paymentsEnabled": false,
"checkOrderingEnabled": false,
"coreBanking": {
"finxact": {
"positionId": "--4WS6jKGGlD4u-----5F-Bg-"
}
},
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.1.1/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:acceptApyOffer": {
"href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: account |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
closeAccount
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/closedAccounts?account=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/closedAccounts?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/closedAccounts',
method: 'post',
data: '?account=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/closedAccounts?account=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/closedAccounts',
params: {
'account' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/closedAccounts', params={
'account': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/closedAccounts?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/closedAccounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Close an account
POST /closedAccounts
Close an account that is eligible to be closed. Only accounts which are active
or inactive
or frozen
may be closed. This operation is invoked from the apiture:close
link on an account; the link only exists if the action is allowed. This changes the state
to closed
. Closing an account will append the text " (Closed YYYY-MM-DDThh:mm:ssZ)
" to the name, so that the previous name may be used for other accounts. This operation is a no-op if the account is already closed.
Parameters
Parameter | Description |
---|---|
account (query) |
string (required) A server-supplied value which identifies the account instance. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource. |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v2.7.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rates": {
"apy": "1.24",
"apye": "1.24",
"nominal": "1.242",
"promotional": false
},
"openedAt": "2019-04-30T10:01:07.375Z",
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"cd": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1Y",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings",
"transferAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"inDebitGracePeriod": true,
"inCreditGracePeriod": true,
"gracePeriodDebitEndsAt": "2020-07-30T04:59:59.000Z",
"gracePeriodCreditEndsAt": "2020-07-30T04:59:59.000Z"
},
"cycleWithdrawalCount": 0,
"interestTargetAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"paymentsEnabled": false,
"checkOrderingEnabled": false,
"coreBanking": {
"finxact": {
"positionId": "--4WS6jKGGlD4u-----5F-Bg-"
}
},
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.1.1/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:acceptApyOffer": {
"href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: account |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
reviewAccount
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/externalAccountsUnderReview?account=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/externalAccountsUnderReview?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccountsUnderReview',
method: 'post',
data: '?account=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccountsUnderReview?account=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/externalAccountsUnderReview',
params: {
'account' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/externalAccountsUnderReview', params={
'account': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccountsUnderReview?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/externalAccountsUnderReview", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
The account is under review
POST /externalAccountsUnderReview
Begin review of an account, if its state allows review. This changes the state to underReview
. When an external account is under review, the financial institution reviews the account details and may approve or reject the account; this will set the state to active
or frozen
, respectively. Only accounts which are verifying
may make this state transition, and review is normally triggered automatically if external account verification was successful and customer data does not match with the account's holders' information. This operation is invoked from the apiture:review
link on an account, which only exists if the action is allowed to update an account state to under review. Only administrative or service applications may call this operation, not bank customers. This operation is a no-op if the account is already under review.
Parameters
Parameter | Description |
---|---|
account (query) |
string (required) A server-supplied value which identifies the account instance. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource. |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v2.7.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rates": {
"apy": "1.24",
"apye": "1.24",
"nominal": "1.242",
"promotional": false
},
"openedAt": "2019-04-30T10:01:07.375Z",
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"cd": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1Y",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings",
"transferAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"inDebitGracePeriod": true,
"inCreditGracePeriod": true,
"gracePeriodDebitEndsAt": "2020-07-30T04:59:59.000Z",
"gracePeriodCreditEndsAt": "2020-07-30T04:59:59.000Z"
},
"cycleWithdrawalCount": 0,
"interestTargetAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"paymentsEnabled": false,
"checkOrderingEnabled": false,
"coreBanking": {
"finxact": {
"positionId": "--4WS6jKGGlD4u-----5F-Bg-"
}
},
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.1.1/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:acceptApyOffer": {
"href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: account |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
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 |
requestMicroDepositVerification
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/externalAccountsNeedingMicroDepositVerification?account=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/externalAccountsNeedingMicroDepositVerification?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccountsNeedingMicroDepositVerification',
method: 'post',
data: '?account=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccountsNeedingMicroDepositVerification?account=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/externalAccountsNeedingMicroDepositVerification',
params: {
'account' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/externalAccountsNeedingMicroDepositVerification', params={
'account': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccountsNeedingMicroDepositVerification?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/externalAccountsNeedingMicroDepositVerification", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Request micro-deposit verification
POST /externalAccountsNeedingMicroDepositVerification
Start micro-deposit verification for an external account. This operation moves an account with state
of failed
or inactive
to the state of microDepositsRequested
. This lets the user reuse an external account when instant account verification fails. The micro-deposit verification flow must be completed as described in the Account Verification API. This operation is available via the apiture:requestMicroDepositVerification
link on an external account if this operation is valid. Only administrative or service applications may call this operation, not bank customers. This operation is a no-op if the account's state
is already microDepositsRequested
.
Parameters
Parameter | Description |
---|---|
account (query) |
string (required) A server-supplied value which identifies the account instance. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource. |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v2.7.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rates": {
"apy": "1.24",
"apye": "1.24",
"nominal": "1.242",
"promotional": false
},
"openedAt": "2019-04-30T10:01:07.375Z",
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"cd": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1Y",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings",
"transferAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"inDebitGracePeriod": true,
"inCreditGracePeriod": true,
"gracePeriodDebitEndsAt": "2020-07-30T04:59:59.000Z",
"gracePeriodCreditEndsAt": "2020-07-30T04:59:59.000Z"
},
"cycleWithdrawalCount": 0,
"interestTargetAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"paymentsEnabled": false,
"checkOrderingEnabled": false,
"coreBanking": {
"finxact": {
"positionId": "--4WS6jKGGlD4u-----5F-Bg-"
}
},
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.1.1/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:acceptApyOffer": {
"href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: account |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
bumpApyRate
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/bumpedApyAccounts?account=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/bumpedApyAccounts?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/bumpedApyAccounts',
method: 'post',
data: '?account=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/bumpedApyAccounts?account=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/bumpedApyAccounts',
params: {
'account' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/bumpedApyAccounts', params={
'account': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/bumpedApyAccounts?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/bumpedApyAccounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Bump the account's APY rate
POST /bumpedApyAccounts
On some banking products (CD or time-deposit accounts), the financial institution (Financial Institution) may offer a new rate in the rates.bumpToApy
property. The user can either accept that offer or defer accepting the offer in anticipation of a better APY offer in the future. Note: The FI may restrict the user to only one rate increase per term.
The client should call this operation when the user elects to accept the APY offer. There is no additional confirmation of this action; the new rate becomes effective and future rate bumps may not be allowed during the remainder of this account's term. The APY rate that was in effect before bump becomes the rates.originalApy
, the rates.bumpToApy
becomes the new apy
, and rates.bumpToApy
is dropped from the rates
. The account's cd.apyBumpedAt
records when the user accepted the bumped rate.
If and only if a new APY offer is available, this operation is listed in the accounts _links
with the link relation apiture:bumpApyRate
.
Parameters
Parameter | Description |
---|---|
account (query) |
string (required) A server-supplied value which identifies the account instance. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource. |
Try It
Example responses
202 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v2.7.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rates": {
"apy": "1.24",
"apye": "1.24",
"nominal": "1.242",
"promotional": false
},
"openedAt": "2019-04-30T10:01:07.375Z",
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"cd": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1Y",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings",
"transferAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"inDebitGracePeriod": true,
"inCreditGracePeriod": true,
"gracePeriodDebitEndsAt": "2020-07-30T04:59:59.000Z",
"gracePeriodCreditEndsAt": "2020-07-30T04:59:59.000Z"
},
"cycleWithdrawalCount": 0,
"interestTargetAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"paymentsEnabled": false,
"checkOrderingEnabled": false,
"coreBanking": {
"finxact": {
"positionId": "--4WS6jKGGlD4u-----5F-Bg-"
}
},
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.1.1/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:acceptApyOffer": {
"href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
202 | Accepted |
Accepted. | |
Schema: account |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. This account type does not allow bumping the APY rate. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
External Accounts
External Bank Accounts
getExternalAccounts
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/externalAccounts \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/externalAccounts HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccounts',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccounts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/externalAccounts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/externalAccounts', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/externalAccounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of external accounts
GET /externalAccounts
Return a paginated sortable filterable searchable collection of external accounts. The links in the response include pagination links.
Administrative applications may use searchExternalAccounts
to find accounts by account number.
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. Default: 100 |
sortBy (query) |
string Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2 .This collection may be sorted by following properties: • state • type • name • institutionName • verifiedAt • createdAt |
state (query) |
string Subset the accounts or external accounts collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending matches only items whose state is pending ; ?state=removed|inactive matches items whose state is removed or inactive . This is combined with an implicit and with other filters if they are used. See filtering. Enumerated values: pending active inactive frozen closed |
type (query) |
string Subset the accounts or external accounts collection to those with this exact type value. Use | to separate multiple values. For example, ?type=Personal%20Savings matches only items whose type is Personal Savings ; ?type=Personal%20Savings|Investment%20Account matches items whose type is Personal Savings or Investment Account . This is combined with an implicit and with other filters if they are used. See filtering. |
name (query) |
string Subset the accounts or external accounts collection to those with this name value. Use | to separate multiple values. For example, ?name=Bartell matches only items whose name is Bartell ; ?name=Bartell|kirsten matches items whose name is Bartell or kirsten . This is combined with an implicit and with other filters if they are used. See filtering. |
filter (query) |
string Optional filter criteria. See filtering. This collection may be filtered by following properties and functions: • Property state using functions eq , ne , in • Property type using functions eq , ne , in • Property name using functions eq , ne , lt , le , gt , ge , startsWith , endsWith , contains , search • Property _id using functions eq , in • Property ownerId using functions eq |
q (query) |
string Optional search string. See searching. |
unmasked (query) |
boolean When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true , to request that the response body includes the full account number. Such requests are auditable. |
embed (query) |
array[string] If set, each external account in the _embedded.items array will include additional embedded objects. The embed query parameter specifies which related resources to include in the _embedded object in each account in response. embed supports the following values:
|
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/accounts/externalAccounts/v1.1.0/profile.json",
"start": "10",
"limit": 10,
"count": 67,
"name": "external accounts",
"_links": {
"self": {
"href": "/accounts/externalAccounts?start=10&limit=10"
},
"first": {
"href": "/accounts/externalAccounts?start=0&limit=10"
},
"next": {
"href": "/accounts/externalAccounts?start=20&limit=10"
},
"collection": {
"href": "/accounts/externalAccounts"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My account at 3rdParty Bank",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.1.1/profile.json",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"institutionName": "3rdParty Bank",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
},
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: externalAccounts |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createExternalAccount
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/externalAccounts \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/externalAccounts HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccounts',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_profile": "https://api.apiture.com/schemas/accounts/createExternalAccount/v1.1.0/profile.json",
"name": "My account at 3rdParty Bank",
"institutionName": "3rd Party Bank",
"primaryUserName": "Lana Michaels",
"type": "savings",
"ifxType": "SDA",
"routingNumber": "021000021",
"accountNumbers": {
"full": "9876543210"
},
"_embedded": {
"accountOwners": [
{
"firstName": "Steven",
"middleName": "Benjamin",
"lastName": "Storey",
"fullName": "Steven B. Storey",
"type": "primary",
"addresses": [
{
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401",
"countryCode": "US"
}
]
}
]
},
"_links": {
"apiture:productType": {
"href": "/products/productTypes/a93c19ba-f96d-4b30-8dd7-92b2d6ffcb0b"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccounts',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/externalAccounts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/externalAccounts', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/externalAccounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new external account
POST /externalAccounts
Create a new external account. A successful operation returns the full accountNumber.
Body parameter
{
"_profile": "https://api.apiture.com/schemas/accounts/createExternalAccount/v1.1.0/profile.json",
"name": "My account at 3rdParty Bank",
"institutionName": "3rd Party Bank",
"primaryUserName": "Lana Michaels",
"type": "savings",
"ifxType": "SDA",
"routingNumber": "021000021",
"accountNumbers": {
"full": "9876543210"
},
"_embedded": {
"accountOwners": [
{
"firstName": "Steven",
"middleName": "Benjamin",
"lastName": "Storey",
"fullName": "Steven B. Storey",
"type": "primary",
"addresses": [
{
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401",
"countryCode": "US"
}
]
}
]
},
"_links": {
"apiture:productType": {
"href": "/products/productTypes/a93c19ba-f96d-4b30-8dd7-92b2d6ffcb0b"
}
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
createExternalAccount (required) The data necessary to create a new external account. |
Try It
Example responses
201 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.1.1/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {
"productType": {
"_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
"_profile": "https://api.apiture.com/schemas/products/productType/v1.0.1/profile.json",
"name": "savings",
"label": "Personal Savings"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"institutionName": "3rdParty Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created. | |
Schema: externalAccount |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 This error response may have one of the following | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
201 | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
201 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource. |
getExternalAccount
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this external account
GET /externalAccounts/{externalAccountId}
Return a HAL representation of this external account resource.
Parameters
Parameter | Description |
---|---|
externalAccountId (path) |
string (required) The unique identifier of this external account. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
unmasked (query) |
boolean When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true , to request that the response body includes the full account number. Such requests are auditable. |
embed (query) |
array[string] The embed query parameter specifies which related resources to include in the _embedded object in the response. embed supports the following comma-separated values:
|
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.1.1/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {
"productType": {
"_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
"_profile": "https://api.apiture.com/schemas/products/productType/v1.0.1/profile.json",
"name": "savings",
"label": "Personal Savings"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"institutionName": "3rdParty Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: externalAccount |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such external account resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this external account resource. |
patchExternalAccount
Code samples
# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.1.1/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {
"productType": {
"_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
"_profile": "https://api.apiture.com/schemas/products/productType/v1.0.1/profile.json",
"name": "savings",
"label": "Personal Savings"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"institutionName": "3rdParty Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this external account
PATCH /externalAccounts/{externalAccountId}
Perform a partial update of this external account. Fields which are omitted from the request are not updated. Nested _embedded
and _links
are ignored if included. Bank users may update the routingNumber
, accountNumbers.full
, institutionName
, type
and ifxType
only if the external account is still pending
. If accountNumbers.full
is patched, then the full account number is included in the response. Financial institution administrators may patch all fields except the routingNumber
and accountNumbers.full
regardless of the external account's state. This operation does not change the state
property. To change the state
of the account, use the POST
operations activateAccount
, deactivateAccount
, freezeAccount
, closeAccount
, reviewExternalAccount
which are available in the _links
on an account instance.
Body parameter
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.1.1/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {
"productType": {
"_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
"_profile": "https://api.apiture.com/schemas/products/productType/v1.0.1/profile.json",
"name": "savings",
"label": "Personal Savings"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"institutionName": "3rdParty Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
}
Parameters
Parameter | Description |
---|---|
externalAccountId (path) |
string (required) The unique identifier of this external account. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource. |
body (body) |
externalAccount (required) |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.1.1/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {
"productType": {
"_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
"_profile": "https://api.apiture.com/schemas/products/productType/v1.0.1/profile.json",
"name": "savings",
"label": "Personal Savings"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"institutionName": "3rdParty Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: externalAccount |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such external account resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. the request attempted to change the state in an incompatible way, such as an attempt to change the state from This error response may have one of the following |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this external account resource. |
deleteExternalAccount
Code samples
# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
DELETE https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this external account resource
DELETE /externalAccounts/{externalAccountId}
Delete this external account resource and any resources that are owned by it. Note that only pending
accounts may be deleted. Once an account has been activated, it cannot be deleted, only inactivated or removed from use.
Parameters
Parameter | Description |
---|---|
If-Match (header) |
string The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource. |
externalAccountId (path) |
string (required) The unique identifier of this external account. This is an opaque string. |
Try It
Example responses
404 Response
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.0.0/profile.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://api.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such external account resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. the request attempted to change the state in an incompatible way, such as an attempt to change the state from This error response may have one of the following |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Account Owners
Personal Account Owners
getExternalAccountOwners
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a list of external account owners
GET /externalAccounts/{externalAccountId}/accountOwners
Return a list of the external account's account owners (holders). The result may be empty if the data was not available when user created the external account or the account aggregator provider does not provide this information.
Parameters
Parameter | Description |
---|---|
externalAccountId (path) |
string (required) The unique identifier of this external account. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/accounts/externalAccountOwners/v1.1.0/profile.json",
"accountOwners": [
{
"firstName": "Steven",
"middleName": "Benjamin",
"lastName": "Storey",
"fullName": "Steven B. Storey",
"type": "primary"
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: externalAccountOwners |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such external account resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be be provided with the If-None-Match on subsequent requests. |
getOwners
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch the primary and joint owners of an account
GET /accounts/{accountId}/owners
Return a HAL representation of the array of the account owners for personal accounts. There is one primary
owner and zero or more joint
owners. Bank customers cannot directly change this set; only the bank system or admins can change owners. Existing primary or joint owners may invite other joint owners via the Invitations API.
For business accounts, refer to the owningBusiness
in the account resource's embedded objects.
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
unmasked (query) |
boolean When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true , to request that the response body includes the full account number. Such requests are auditable. |
Try It
Example responses
200 Response
{
"items": [
{
"_id": "p001",
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "10047294723672",
"type": "primary",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "*****3333",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
],
"_profile": "https://api.apiture.com/schemas/accounts/owners/v1.1.0/profile.json"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: owners |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
deleteOwner
Code samples
# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners/{owner} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
DELETE https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners/{owner} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners/{owner}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners/{owner}',
{
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',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners/{owner}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners/{owner}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners/{owner}");
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"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners/{owner}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete an account owner
DELETE /accounts/{accountId}/owners/{owner}
Remove a joint owner from an accoount.
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
owner (path) |
string (required) Identifies the account owner to delete. This value is either the _id of the owner, or the zero-based decimal index of the owner within the owners.items array from the getOwners response. Caution: deleting one owner changes the array offset of remaining owners. |
Try It
Example responses
404 Response
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.0.0/profile.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://api.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Responses
Status | Description |
---|---|
204 | No Content |
Deleted. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account owner resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. Cannot delete the sole remaining account owner. This error response may have one of the following | |
Schema: errorResponse |
Account Beneficiaries
Personal Account Beneficiaries
getBeneficiaries
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch the account's beneficiaries
GET /accounts/{accountId}/beneficiaries
Return a HAL representation of the array of the account beneficiaries.
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try It
Example responses
200 Response
{
"_links": {
"property1": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
},
"property2": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"items": [
{
"type": "organization",
"taxId": "wf+Btcid6QIYsID9R5cCimyco8YJVZwwkqhHrJT6UjBxK1ddL2aKLJt2w8xRzVhClCNJs",
"_encryption": {
"taxId": "secret-12345678"
},
"percent": 40,
"organization": {
"name": "Doctors Without Borders USA",
"label": "Doctors Without Borders",
"type": "nonProfit",
"subtype": "charitableTrust",
"addresses": [
{
"type": "headquarters",
"addressLine1": "40 Rector St.",
"addressLine2": "16th Floor",
"city": "New York",
"regionCode": "NY",
"postalCode": "10006"
}
]
}
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: beneficiaries |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
patchBeneficiaries
Code samples
# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_links": {
"property1": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
},
"property2": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
}
},
"_embedded": {},
"items": [
{
"type": "organization",
"taxId": "wf+Btcid6QIYsID9R5cCimyco8YJVZwwkqhHrJT6UjBxK1ddL2aKLJt2w8xRzVhClCNJs",
"_encryption": {
"taxId": "secret-12345678"
},
"percent": 40,
"organization": {
"name": "Doctors Without Borders USA",
"label": "Doctors Without Borders",
"type": "nonProfit",
"subtype": "charitableTrust",
"addresses": [
{
"type": "headquarters",
"addressLine1": "40 Rector St.",
"addressLine2": "16th Floor",
"city": "New York",
"regionCode": "NY",
"postalCode": "10006"
}
]
}
}
]
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create or Update the account's beneficiaries
PATCH /accounts/{accountId}/beneficiaries
Create or update the array of the beneficiaries for this account. Beneficiaries may be individuals, or a trust or charity. If the array contains only one item, it's percentage is automatically set to 100%.
When updating an existing set of beneficiaries, null
values in the items
array or omitted objects (such as individual
or organization
) inside the items are ignored: the beneficiary corresponding to a null
item is not changed. For example, the client may omit the type
, individual
, and organization
properties in the items
array in order to adjust just the percentages:
json [ { 'percentage': 20 }, { 'percentage': 30 }, { 'percentage' : 20 }, null, null ]
will change just the percentages of the first three beneficiaries and not update their other data for any of the five beneficiaries;
The beneficiaries list is truncated to the size of the items
array. For example: if there were five beneficiaries, and the request body contains only three items, the last two are removed from the accounts beneficiaries array (The new total must still total 100%.)
This operation applies only to personal
accounts.
To update a beneficiary's taxId, an authenticated user must encrypt (see GET /encryptionKeys
) and pass taxId
in the request body. See Encryption for additional details.
Body parameter
{
"_links": {
"property1": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
},
"property2": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
}
},
"_embedded": {},
"items": [
{
"type": "organization",
"taxId": "wf+Btcid6QIYsID9R5cCimyco8YJVZwwkqhHrJT6UjBxK1ddL2aKLJt2w8xRzVhClCNJs",
"_encryption": {
"taxId": "secret-12345678"
},
"percent": 40,
"organization": {
"name": "Doctors Without Borders USA",
"label": "Doctors Without Borders",
"type": "nonProfit",
"subtype": "charitableTrust",
"addresses": [
{
"type": "headquarters",
"addressLine1": "40 Rector St.",
"addressLine2": "16th Floor",
"city": "New York",
"regionCode": "NY",
"postalCode": "10006"
}
]
}
}
]
}
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource. |
body (body) |
beneficiaries (required) The array of account beneficiaries. |
Try It
Example responses
200 Response
{
"_links": {
"property1": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
},
"property2": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"items": [
{
"type": "organization",
"taxId": "wf+Btcid6QIYsID9R5cCimyco8YJVZwwkqhHrJT6UjBxK1ddL2aKLJt2w8xRzVhClCNJs",
"_encryption": {
"taxId": "secret-12345678"
},
"percent": 40,
"organization": {
"name": "Doctors Without Borders USA",
"label": "Doctors Without Borders",
"type": "nonProfit",
"subtype": "charitableTrust",
"addresses": [
{
"type": "headquarters",
"addressLine1": "40 Rector St.",
"addressLine2": "16th Floor",
"city": "New York",
"regionCode": "NY",
"postalCode": "10006"
}
]
}
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: beneficiaries |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The beneficiary data is invalid or percentages to not total 100%. This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. Beneficiaries can only be assigned to personal accounts. This error response may have one of the following | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
Authorized Signers
Business Account Authorized Signers
getAuthorizedSigners
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch the business account's authorized signers
GET /accounts/{accountId}/authorizedSigners
Return a HAL representation of the array of the account's authorized signers.
This operation applies only to business accounts.
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try It
Example responses
200 Response
{
"items": [
{
"_id": "as001",
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "10047294723672",
"type": "authorizedSigner",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "*****3333",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
],
"_profile": "https://api.apiture.com/schemas/organizations/authorizedSigners/v1.1.0/profile.json"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: authorizedSigners |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
updateAuthorizedSigners
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"items": [
{
"_id": "as001",
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "10047294723672",
"type": "authorizedSigner",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "*****3333",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
],
"_profile": "https://api.apiture.com/schemas/organizations/authorizedSigners/v1.1.0/profile.json"
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update the authorized signers of an account
PUT /accounts/{accountId}/authorizedSigners
Update the array of the authorized signers. Each signer must be a verified user. This operation completely replaces the set of signers. Only financial institutions may update authorized signers; this occurs after an existing authorized signer or the person who created the business account has invited other users and those verified users have accepted the invitation.
This operation applies only to business accounts.
Body parameter
{
"items": [
{
"_id": "as001",
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "10047294723672",
"type": "authorizedSigner",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "*****3333",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
],
"_profile": "https://api.apiture.com/schemas/organizations/authorizedSigners/v1.1.0/profile.json"
}
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource. |
body (body) |
authorizedSigners (required) The array of authorized signers. |
Try It
Example responses
200 Response
{
"items": [
{
"_id": "as001",
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "10047294723672",
"type": "authorizedSigner",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "*****3333",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
],
"_profile": "https://api.apiture.com/schemas/organizations/authorizedSigners/v1.1.0/profile.json"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: authorizedSigners |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
Configuration
Accounts Service Configuration
getConfigurationGroups
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/configurations/groups HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/configurations/groups',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/configurations/groups',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of configuration groups
GET /configurations/groups
Return a paginated sortable filterable searchable collection of configuration groups. The links in the response include pagination links.
Try It
Example responses
200 Response
{
"_profile": "https://production.api.apiture.com/schemas/configurations/configurationGroups/v2.0.1/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "configurationGroups",
"_links": {
"self": {
"href": "/configurations/configurations/groups?start=10&limit=10"
},
"first": {
"href": "/configurations/configurations/groups?start=0&limit=10"
},
"next": {
"href": "/configurations/configurations/groups?start=20&limit=10"
},
"collection": {
"href": "/configurations/configurations/groups"
}
},
"_embedded": {
"items": [
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.1/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/basic"
}
},
"name": "basic",
"label": "Basic Settings",
"description": "The basic settings for the Transfers API"
},
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.1/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/calendar"
}
},
"name": "calendar",
"label": "Calendar",
"description": "A calendar that specifies which dates are valid for performing transfers (e.g., weekdays excluding federal holidays)"
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: configurationGroups |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
getConfigurationGroup
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this configuration group
GET /configurations/groups/{groupName}
Return a HAL representation of this configuration group resource.
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.1/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/basic"
}
},
"name": "basic",
"label": "Basic Settings",
"description": "The basic settings for the Transfers API",
"schema": {
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
},
"values": {
"dailyLimit": 5,
"cutoffTime": 63000
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: configurationGroup |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-None-Match request header for GET operations for this configuration group resource. |
getConfigurationGroupSchema
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch the schema for this configuration group
GET /configurations/groups/{groupName}/schema
Return a HAL representation of this configuration group schema resource.
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try It
Example responses
200 Response
{
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: configurationSchema |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT |
getConfigurationGroupValues
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch the values for the specified configuration group
GET /configurations/groups/{groupName}/values
Return a representation of this configuration group values resource.
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try It
Example responses
200 Response
{
"dailyLimit": 5,
"cutoffTime": 63000
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: configurationValues |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT |
updateConfigurationGroupValues
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"dailyLimit": 5,
"cutoffTime": 63000
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update the values for the specified configuration group
PUT /configurations/groups/{groupName}/values
Perform a complete replacement of this set of values.
Body parameter
{
"dailyLimit": 5,
"cutoffTime": 63000
}
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If supplied, the value must match the current entity tag of the resource. |
body (body) |
configurationValues (required) |
Try It
Example responses
200 Response
{
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: configurationSchema |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
403 | Forbidden |
Access denied. Only user allowed to update configurations is an admin. | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT |
getConfigurationGroupValue
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a single value associated with the specified configuration group
GET /configurations/groups/{groupName}/values/{valueName}
Fetch a single value associated with this configuration group. This provides convenient access to individual values of the configuration group.
The response is always a JSON value which can be parsed with a strict JSON parser. The response may be
- a primitive number, boolean, or quoted JSON string.
- a JSON array.
- a JSON object.
null
.
Examples:
"a string configuration value"
120
true
null
{ "borderWidth": 8, "foregroundColor": "blue" }
To update a specific value, use PUT /accounts/configurations/groups/{groupName}/values/{valueName}
(operation updateConfigurationGroupValue
).
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
valueName (path) |
string (required) The unique name of a value in a configuration group. This is the name of the value in the schema . A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']* . |
Try It
Example responses
200 Response
"string"
Responses
Status | Description |
---|---|
200 | OK |
OK. The value of the named configuration value as a JSON string, number, boolean, array, or object. | |
Schema: string |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is either no such configuration group resource at the specified {groupName} or no such value at the specified {valueName} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this configuration group resource. |
updateConfigurationGroupValue
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = 'string';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update a single value associated with the specified configuration group
PUT /configurations/groups/{groupName}/values/{valueName}
Update a single value associated with this configuration group. This provides convenient access to individual values of the configuration group as defined in the configuration group's schema
. The request body must conform to the configuration group's schema for the named {valueName}
. This operation is idempotent.
The request body must be a JSON value which can be parsed with a strict JSON parser. The response may be
- a primitive number, boolean, or quoted JSON string.
- a JSON array.
- a JSON object.
null
.
Examples:
"a string configuration value"
120
true
null
{ "borderWidth": 8, "foregroundColor": "blue" }
To fetch specific value, use GET /accounts/configurations/groups/{groupName}/values/{valueName}
(operation getConfigurationGroupValue
).
Body parameter
"string"
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
valueName (path) |
string (required) The unique name of a value in a configuration group. This is the name of the value in the schema . A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']* . |
body (body) |
string (required) The request body must a valid JSON value and should be parsable with a JSON parser. The result may be a string, number, boolean, array, or object. |
Try It
Example responses
200 Response
"string"
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: string |
Status | Description |
---|---|
403 | Forbidden |
Access denied. Only user allowed to update configurations is an admin. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this configuration group resource. |
API
The Accounts API
getApi
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/ \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY'
GET https://api.devbank.apiture.com/accounts/ HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
fetch('https://api.devbank.apiture.com/accounts/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY'
}
r = requests.get('https://api.devbank.apiture.com/accounts/', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Top-level resources and operations in this API
GET /
Return links to the top-level resources and operations in this API. This API returns the following links:
apiture:accounts
: links to the collection of accounts held at this financial institution.apiture:externalAccounts
: links to the collection of external accounts held at other financial institutions.
Try It
Example responses
OK.
{
"id": "accounts",
"name": "User Bank Accounts",
"apiVersion": "0.3.0",
"_profile": "https://production.api.apiture.com/schemas/common/root/v.0.1.0/profile.json",
"_links": {
"apiture:accounts": {
"href": "/accounts/accounts"
},
"apiture:externalAccounts": {
"href": "/accounts/externalAccounts"
}
}
}
200 Response
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "https://api.apiture.com/schemas/common/root/v2.0.1/profile.json",
"_links": {}
}
Responses
getApiDoc
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/apiDoc \
-H 'Accept: application/json' \
-H 'API-Key: API_KEY'
GET https://api.devbank.apiture.com/accounts/apiDoc HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/json
var headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/apiDoc',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
fetch('https://api.devbank.apiture.com/accounts/apiDoc',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'API-Key' => 'API_KEY'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/apiDoc',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'API-Key': 'API_KEY'
}
r = requests.get('https://api.devbank.apiture.com/accounts/apiDoc', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/apiDoc");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/apiDoc", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return API definition document
GET /apiDoc
Return the OpenAPI document that describes this API.
Try It
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: Inline |
Response Schema
getLabels
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/labels \
-H 'Accept: application/hal+json' \
-H 'Accept-Language: string' \
-H 'API-Key: API_KEY'
GET https://api.devbank.apiture.com/accounts/labels HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
Accept-Language: string
var headers = {
'Accept':'application/hal+json',
'Accept-Language':'string',
'API-Key':'API_KEY'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/labels',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'Accept-Language':'string',
'API-Key':'API_KEY'
};
fetch('https://api.devbank.apiture.com/accounts/labels',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'Accept-Language' => 'string',
'API-Key' => 'API_KEY'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/labels',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'Accept-Language': 'string',
'API-Key': 'API_KEY'
}
r = requests.get('https://api.devbank.apiture.com/accounts/labels', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/labels");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"Accept-Language": []string{"string"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/labels", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Localized Labels
GET /labels
Return a JSON object which defines labels for enumeration types defined by the schemas defined in this API.
The labels in the response may not all match the
requested language; some may be in the default
language (en-us
).
Parameters
Parameter | Description |
---|---|
Accept-Language (header) |
string The weighted language tags which indicate the user's preferred natural language for the localized labels in the response, as per RFC 7231. |
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/common/labelGroups/v1.0.1/profile.json",
"groups": {
"structure": {
"unknown": {
"label": "Unknown",
"code": "0",
"hidden": true
},
"corporation": {
"label": "Corporation",
"code": "1",
"variants": {
"fr": {
"label": "Soci\\u00e9t\\u00e9"
}
}
},
"partnership": {
"label": "Partnership",
"code": "2",
"variants": {
"fr": {
"label": "Partenariat"
}
}
},
"llc": {
"label": "Limited Liability Company",
"code": "2",
"variants": {
"fr": {
"label": "Soci\\u00e9t\\u00e9 \\u00e9 Responsabilit\\u00e9 Limit\\u00e9e"
}
}
},
"nonProfit": {
"label": "Non Profit",
"code": "4",
"variants": {
"fr": {
"label": "Non Lucratif"
}
}
},
"financialInstitution": {
"label": "Financial Institution",
"code": "8",
"variants": {
"fr": {
"label": "Institution financi\\u00e8re"
}
}
},
"soleProprietorship": {
"label": "Sole Proprietorship",
"code": "11",
"variants": {
"fr": {
"label": "Entreprise individuelle"
}
}
},
"other": {
"label": "Other",
"code": "254",
"variants": {
"fr": {
"label": "Autre"
}
}
}
},
"estimatedAnnualRevenue": {
"unknown": {
"label": "Unknown",
"code": "0"
},
"under1Million": {
"label": "Under $1M",
"code": "1",
"range": "[0,1000000.00)"
},
"from1to10Million": {
"label": "$1M to $10M",
"code": "2",
"range": "[1000000.00,10000000.00)"
},
"from10to100Million": {
"label": "$10M to $100M",
"code": "3",
"range": "[10000000.00,100000000.00)"
},
"over100Million": {
"label": "Over $100,000,000.00",
"code": "4",
"range": "[100000000.00,]"
},
"other": {
"label": "Other",
"code": "254"
}
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: labelGroups |
Schemas
abstractRequest
{
"_profile": "https://production.api.apiture.com/schemas/common/abstractRequest/v2.0.0/profile.json",
"_links": {
"self": {
"href": "https://api.devbank.apiture.com/applications/"
}
}
}
Abstract Request (v2.0.0)
An abstract schema used to define other request-only schemas. This is a HAL resource representation, minus the _error
defined in abstractResource
.
Properties
Name | Description |
---|---|
_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. read-only
|
abstractResource
{
"_profile": "https://production.api.apiture.com/schemas/common/abstractResource/v2.0.0/profile.json",
"_links": {
"self": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f"
}
}
}
Abstract Resource (v2.0.0)
An abstract schema used to define other schemas for request and response bodies. This is a 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
.
Properties
Name | Description |
---|---|
_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. read-only
|
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. read-only
|
account
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v2.7.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rates": {
"apy": "1.24",
"apye": "1.24",
"nominal": "1.242",
"promotional": false
},
"openedAt": "2019-04-30T10:01:07.375Z",
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"cd": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1Y",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings",
"transferAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"inDebitGracePeriod": true,
"inCreditGracePeriod": true,
"gracePeriodDebitEndsAt": "2020-07-30T04:59:59.000Z",
"gracePeriodCreditEndsAt": "2020-07-30T04:59:59.000Z"
},
"cycleWithdrawalCount": 0,
"interestTargetAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
},
"paymentsEnabled": false,
"checkOrderingEnabled": false,
"coreBanking": {
"finxact": {
"positionId": "--4WS6jKGGlD4u-----5F-Bg-"
}
},
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.1.1/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:acceptApyOffer": {
"href": "/accounts/acceptedApyOffers?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Account (v2.7.0)
Representation of an account resource. A banking account, which is an instance of a banking product.
A business account may have authorized signers, which are people authorized to perform banking operations on the account such as initiating funds transfers.
The _links
on an external account may include the following, depending on the state of the account:
The apiture:rolloverProduct
and apiture:transferTargetAccount
links may be updated by the patchAccount
operations. The owners are listed by the getOwners
operation. The beneficiaries are listed and updated by the getBeneficiaries
and patchBeneficiaries
operations. The authorized signers are listed and updated by the getAuthorizedSigners
and updateAuthorizedSigners
operation.
Links
Response and request bodies using this account
schema may contain the following links:
Rel | Summary | Method |
---|---|---|
self | Fetch a representation of this account | GET |
apiture:productType | GET | |
apiture:owners | Fetch the primary and joint owners of an account | GET |
apiture:beneficiaries | Fetch the account's beneficiaries | GET |
apiture:authorizedSigners | Fetch the business account's authorized signers | GET |
apiture:activate | Activate an account | POST |
apiture:deactivate | Deactivate an account | POST |
apiture:freeze | Freeze an account | POST |
apiture:close | Close an account | POST |
apiture:rolloverProduct | GET | |
apiture:transferTargetAccount | GET | |
apiture:interestTargetAccount | GET | |
apiture:bumpApyRate | Bump the account's APY rate | POST |
Properties
Name | Description |
---|---|
_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 | embeddedAccountObjects Embedded objects. |
_profile | string(uri) The URI of a resource profile which describes the representation. read-only
|
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. read-only
|
name | string The user-assigned name of this account. minLength: 1
maxLength: 128
|
description | string The user-assigned description of this account. minLength: 1
maxLength: 4096
|
interestPolicy | interestPolicy How interest credits on the account (if any) are disbursed. This field is none for non-interest bearing accounts. If this is transfer , the apiture:interestTargetAccount link in the account's _link references the target account for the disbursements. This field applies if the account is a CD (Certificate of Deposit a.k.a. Time Deposit) account.
|
_id | string The unique identifier for this account resource. This is an immutable opaque string. read-only
|
state | internalAccountState The state of the internal account. read-only
|
title | string The name of the account holder. This is derived from the user resource. maxLength: 512
|
productName | string The name of the banking product that this account is an instance of. This is derived from the product resource. read-only
minLength: 1
maxLength: 128
|
type | string The name of the banking product type. This is derived from the product resource. The subtype is more specific; type is a broad account category.
read-only
minLength: 1
maxLength: 128
|
subtype | string The name of the banking product sub type. This is derived from the product resource. This is more specific than the type .
read-only
minLength: 1
maxLength: 128
|
ifxType | ifxType A code which identifies the product type. This is one of the IFX AcctType values. |
accountNumbers | accountNumbers Different representations of the account number. |
balance | balance The account balance. read-only
|
allowsTransfers | boolean If true , the account is open to deposits and credits such as transfers or rollovers.
Default: true
read-only
|
openedAt | string(date-time) The date-time the account was opened. This is an RFC 3339 UTC time stamp. read-only
|
interest | interest Interest disbursement settings for the account. |
cd | cd Certificate of Deposit properties for the account. |
cycleWithdrawalCount | integer The number of withdrawals made against this account within the current statement cycle. For some deposit accounts such as savings accounts, this is limited to a maximum defined in the corresponding product's constraints. If exceeded over multiple statement cycles, the financial institution may convert the account to a demand deposit (checking) account. read-only
|
institutionName | string The name of the financial institution (FI), derived from the FI's configuration. read-only
minLength: 2
maxLength: 128
|
routingNumber | string The account routing number which identifies the financial institution (FI). The full routing number is derived from the FI's configuration. read-only
minLength: 9
maxLength: 9
|
paymentsEnabled | boolean If true, payments features such as bill pay are enabled and scheduled payments will debit from this account. The property paymentsEnabled was added on version 2.5.0 of the schema.
read-only
|
checkOrderingEnabled | boolean If true , the user requesting this account resource may order checks for this account through the Check Orders API. The account state must be active and the associated product must also enable check ordering.The property checkOrderingEnabled was added on version 2.6.0 of the schema.
Default: false
read-only
|
rates | interestRates The account's rates of return (for deposit accounts) or interest rate (for debit accounts). read-only
|
interestTargetAccount | interestTargetAccount If the account is set to disburse earned interest into another account, this is the target account. The fields are derived from the account that is assigned with the apiture:interestTargetAccount link when creating or updating the account.
read-only
|
coreBanking | accountCoreBanking Properties of an account that are specific to the banking core provider. read-only
|
attributes | attributes An optional map of name/value pairs which contains additional dynamic data about the resource. |
accountCoreBanking
{
"finxact": {
"positionId": "--4WS6lKGlD4u-----5F-Bg-"
}
}
Account Core Banking (v1.0.0)
Account properties that are specific to the banking core provider. The actual banking core in which the Apiture platform is executing determines what data appears. The sub-object for each banking core is present on an account only if the Apiture system is connected to the corresponding core banking provider. The name of each sub-object is the name of that provider.
Properties
Name | Description |
---|---|
finxact | accountFinxactCoreBanking Account properties that are specific to the Finxact banking core system. This object is present only if the Apiture platform is connected to a Finxact system. read-only
|
accountFinxactCoreBanking
{
"positionId": "--4WS6lKGlD4u-----5F-Bg-"
}
Account Core Banking Properties (v1.0.0)
Account properties that are specific to the Finxact banking core system.
Properties
Name | Description |
---|---|
positionId | string The ID of the Finxact position ID. This is valid if the account is a single position account. read-only
|
accountIdentification
{
"name": "My Premiere Savings",
"title": "John Smith",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
},
"institutionName": "3rd Party Bank"
}
Account Identification (v1.0.0)
Properties which identify a specific account.
Properties
Name | Description |
---|---|
name | string The account name. |
title | string The title of the account. Traditionally, this is the name of the account holder. maxLength: 512
|
institutionName | string The name of the financial institution which manages the account. read-only
minLength: 2
maxLength: 128
|
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. read-only
minLength: 9
maxLength: 9
|
accountNumbers | accountNumbers The masked and full account numbers for this account. The full value only appears when ?unmasked=true is passed on the GET request.
read-only
|
accountNumbers
{
"masked": "*************3210",
"full": "9876543210"
}
Account Numbers (v1.0.0)
Different representations of an account number.
Properties
Name | Description |
---|---|
masked | string A partial account number that does not contain all the digits of the full account number. This masked number appears in statements or in user experience presentation. It is sufficient for a user to differentiate this account from other accounts they hold, but is not sufficient for initiating transfers, etc. The first character is the mask character and is repeated; this does not indicate that the full account number is the same as the mask length. This value is derived and immutable. read-only
minLength: 8
maxLength: 32
|
full | string The full account number. This value only appears when ?unmasked=true is passed on the GET request. Not included in the summary representation of the account that is included in account collection responses. This value is derived and immutable.
read-only
minLength: 4
maxLength: 17
|
accountOwner
{
"_id": "p001",
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "10047294723672",
"type": "primary",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "*****3333",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
Account Owner (v1.0.0)
A primary or joint owner of an account; a person who is authorized to perform banking operations in the account.
Properties
Name | Description |
---|---|
firstName | string (required) The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string (required) The person's last name (or surname). |
addresses | [address] (required) An array of postal/mailing addresses. |
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
|
taxId | string (required) Official government identification (tax ID) for this person. This will return a masked tax ID, where only the last 4 digits are visible. If the ?unmasked=true query parameter is passed, the full, unmasked tax ID is returned.
|
citizen | boolean (required) Indicates if the person is a (US) citizen. |
emailAddress | string(email) Optional email address. |
userId | string (required) The unique ID of the user. This is the _id value of the user resource from the Users API.
|
customerId | string (required) The unique customer number, also known as the Customer Identification File number or CIF number. This derived value is assigned to the user in the banking core. The customerId differs from the _id (which is the ID of the resource in the Users API).
read-only
minLength: 1
maxLength: 100
|
type | authorizationType (required) The type of this account access authorization.
|
role | string The person's role at the organization. This attribute is required when the authorization type is authorizedSigner. |
_id | string The unique identifier for this account owner resource. This is an immutable opaque string. read-only
|
accountPurpose
"unknown"
Account purpose (v1.0.0)
The purpose of the account.
Warning: the enum
list will be removed in a future release and the values defined at runtime via the accountPurpose
group in the response from the getLabels
operation.
Type: string
Enumerated values: unknown
creditCardProcessing
generalOperatingFunds
lottery
payroll
savings
other
notApplicable
accountSearch
{
"_profile": "https://api.apiture.com/schemas/accounts/accountSearch/v1.0.0/profile.json",
"accountNumber": "9876543210"
}
AccountSearch (v1.0.0)
Search parameters for finding an account via sensitive data.
Properties
Name | Description |
---|---|
_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. read-only
|
accountNumber | string (required) The full banking account number. minLength: 4
maxLength: 17
|
accountSummaries
{
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v2.6.0/profile.json",
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
}
},
"name": "My savings",
"description": "My Basic savings account",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"title": "John Smith",
"ifxType": "SDA",
"allowsTransfers": true,
"accountNumbers": {
"full": "9876543210",
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"currency": "USD"
},
"openedAt": "2019-04-30T10:01:07.375Z",
"paymentsEnabled": false,
"checkOrderingEnabled": false
}
]
}
Account Summaries (v2.5.0)
A page of embedded account summaries.
Properties
Name | Description |
---|---|
items | [summaryAccount] (required) An array containing a page of account items. |
accounts
{
"_profile": "https://api.apiture.com/schemas/accounts/accounts/v2.6.0/profile.json",
"start": "10",
"limit": 10,
"count": 67,
"name": "accounts",
"_links": {
"self": {
"href": "/accounts/accounts?start=10&limit=10"
},
"first": {
"href": "/accounts/accounts?start=0&limit=10"
},
"next": {
"href": "/accounts/accounts?start=20&limit=10"
},
"collection": {
"href": "/accounts/accounts"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v2.6.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"
},
"paymentsEnabled": false,
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
}
}
}
]
}
}
Account Collection (v2.6.0)
Collection of accounts. The items in the collection are ordered in the _embedded
object with name items
. The top-level _links
object may contain pagination links (self
, next
, prev
, first
, last
, collection
).
Properties
Name | Description |
---|---|
_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 | accountSummaries (required) Embedded objects. |
_profile | string(uri) The URI of a resource profile which describes the representation. read-only
|
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. read-only
|
count | integer The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
accrualType
"compounding"
Accrual Type (v1.0.0)
Indicates how interest is accrued according to the compoundPeriod
.
accrualType
strings may have one of the following enumerated values:
Value | Description |
---|---|
compounding | Compounding interest |
simple | Simple interest |
These enumeration values are further described by the label group named accrualType
in the response from the getLabels
operation.
Type: string
Enumerated values: compounding
simple
address
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
Address (v1.0.0)
A postal address with the address type and an identifier.
Properties
Name | Description |
---|---|
addressLine1 | string The first street address line of the address, normally a house number and street name. minLength: 4
maxLength: 128
|
addressLine2 | string The optional second street address line of the address. maxLength: 128
|
city | string The name of the city or municipality. minLength: 2
maxLength: 128
|
regionCode | string The mailing address region code, such as state in the US, or a province in Canada. This is normalized to uppercase. minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
|
postalCode | string The mailing address postal code, such as a US Zip or Zip+4 code, or a Canadian postal code. minLength: 5
maxLength: 10
pattern: ^[0-9]{5}(?:-[0-9]{4})?$
|
countryCode | string The ISO 3166-1 alpha-2 country code. This is normalized to uppercase. minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
|
type | addressType (required) The type of this address. |
label | string A text label, suitable for presentation to the end user. This is derived from type or from otherType if type is other
read-only
minLength: 4
maxLength: 32
|
otherType | string The actual address type if type is other .
minLength: 4
maxLength: 32
|
_id | string An identifier for this address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all addresses within the addresses array.
minLength: 1
maxLength: 8
pattern: ^[-a-zA-Z0-9_]{1,8}$
|
addressType
"unknown"
Address Type (v1.0.0)
The type of a postal address.
Warning: The enum
list will be removed in a future release.
The allowed values for this property are defined at runtime in the label group named addressType
in the response from the getLabels
operation.
Type: string
Enumerated values: unknown
home
prior
work
school
mailing
vacation
shipping
billing
headquarters
commercial
site
property
other
notApplicable
attributeValue
{}
Attribute Value (v2.0.0)
The data associated with this attribute.
Properties
attributes
{
"property1": {},
"property2": {}
}
Attributes (v2.0.0)
An optional map of name/value pairs which contains additional dynamic data about the resource.
Properties
Name | Description |
---|---|
additionalProperties | attributeValue The data associated with this attribute. |
authorization
{
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "10047294723672",
"type": "joint",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "*****3333",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"id": "wa0",
"type": "other",
"label": "mailing",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
Authorization (v1.0.0)
Represents a person authorized for account access. This object contains key identification information for the person and the type of access or role that the person has in relation to the banking account or organization.
Properties
Name | Description |
---|---|
firstName | string (required) The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string (required) The person's last name (or surname). |
addresses | [address] (required) An array of postal/mailing addresses. |
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
|
taxId | string (required) Official government identification (tax ID) for this person. This will return a masked tax ID, where only the last 4 digits are visible. If the ?unmasked=true query parameter is passed, the full, unmasked tax ID is returned.
|
citizen | boolean (required) Indicates if the person is a (US) citizen. |
emailAddress | string(email) Optional email address. |
userId | string (required) The unique ID of the user. This is the _id value of the user resource from the Users API.
|
customerId | string (required) The unique customer number, also known as the Customer Identification File number or CIF number. This derived value is assigned to the user in the banking core. The customerId differs from the _id (which is the ID of the resource in the Users API).
read-only
minLength: 1
maxLength: 100
|
type | authorizationType (required) The type of this account access authorization.
|
role | string The person's role at the organization. This attribute is required when the authorization type is authorizedSigner. |
authorizationType
"primary"
Account Authorization type (v1.0.0)
The type of this account access authorization.
primary
the person is the primary owner of a personal account. There may be only one primary owner.joint
the person is a non-primary joint owner of a personal account.authorizedSigner
the person is an authorized signer for all business accounts owned by the organization.
authorizationType
strings may have one of the following enumerated values:
Value | Description |
---|---|
primary | Primary Account Holder: The primary account holder of a personal account. There may be only one primary owner. |
joint | Joint Account Holder: A non-primary joint account holder of a personal account. |
authorizedSigner | Authorized Signer: Authorized Signer of a business account. |
These enumeration values are further described by the label group named authorizationType
in the response from the getLabels
operation.
Type: string
Enumerated values: primary
joint
authorizedSigner
authorizedSigner
{
"_id": "as001",
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "10047294723672",
"type": "authorizedSigner",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "*****3333",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
Authorized Signer (v1.0.0)
A person who is authorized to perform banking operations on an organization's banking accounts.
Properties
Name | Description |
---|---|
firstName | string (required) The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string (required) The person's last name (or surname). |
addresses | [address] (required) An array of postal/mailing addresses. |
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
|
taxId | string (required) Official government identification (tax ID) for this person. This will return a masked tax ID, where only the last 4 digits are visible. If the ?unmasked=true query parameter is passed, the full, unmasked tax ID is returned.
|
citizen | boolean (required) Indicates if the person is a (US) citizen. |
emailAddress | string(email) Optional email address. |
userId | string (required) The unique ID of the user. This is the _id value of the user resource from the Users API.
|
customerId | string (required) The unique customer number, also known as the Customer Identification File number or CIF number. This derived value is assigned to the user in the banking core. The customerId differs from the _id (which is the ID of the resource in the Users API).
read-only
minLength: 1
maxLength: 100
|
type | authorizationType (required) The type of this account access authorization.
|
role | string The person's role at the organization. This attribute is required when the authorization type is authorizedSigner. |
_id | string The unique identifier for this authorized signer resource. This is an immutable opaque string. read-only
|
authorizedSigners
{
"items": [
{
"_id": "as001",
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "10047294723672",
"type": "authorizedSigner",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "*****3333",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
],
"_profile": "https://api.apiture.com/schemas/organizations/authorizedSigners/v1.1.0/profile.json"
}
Authorized Signers (v1.1.0)
The list of users who are authorized to access the organization and its bank accounts.
Properties
Name | Description |
---|---|
_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. read-only
|
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. read-only
|
items | [authorizedSigner] The array of authorized signers for this business and their role within the organization. These people have account access for all business accounts owned by the business. The items in this array must all have the type of authorizedSigner .
minLength: 1
|
balance
{
"current": "3450.30",
"available": "2850.30",
"hold": "500.00",
"reserve": "100.00",
"currency": "USD"
}
Account Balance (v1.0.0)
The balance of the account. This is derived data and not mutable through the API. Balances may be negative, indicating a deficit or loan balance.
Properties
Name | Description |
---|---|
current | string The current balance is the available balance plus all pending credits and minus all pending debits. read-only
|
available | string The string representation of the exact decimal available balance. For deposit accounts, this reflects the amount that may be used for withdrawals or transfers. This field does not apply to debit accounts such as loans. read-only
|
hold | string The hold balance is the total amount of funds held due to holds placed on individual transactions. Transaction holds reduce the available balance until expiration.
read-only
|
reserve | string A reserve balance is the amount placed on hold by the Financial Institution. A reserve balance reduces the available balance.
read-only
|
pendingCredits | string The string representation of the total of all pending credits against this account. This contributes to the current balance but not the available balance. read-only
|
pendingDebits | string The string representation of the total of all pending debits against this account. This contributes to the current balance but not the available balance. read-only
|
currency | string The ISO 4217 currency code for this balance. read-only
|
beneficialOwner
{
"_id": "b003",
"firstName": "William",
"lastName": "Wellphunded",
"addresses": [
{
"addressLine1": "1234 S Front Street",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US",
"type": "home"
}
],
"identification": [
{
"type": "taxId",
"value": "111-11-1111"
}
],
"role": "Chief Financial Officer",
"birthdate": "1982-10-19",
"percentage": 35,
"contactId": "8bf04d7d-c1bd-4945-b0ac-40ef02bb3953"
}
Beneficial Owner (v1.2.0)
A person who owns 25% or more of a business organization.
Properties
Name | Description |
---|---|
firstName | string (required) The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string (required) The person's last name (or surname). |
addresses | [address] An array of postal/mailing addresses. |
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
|
emailAddresses | [typedEmailAddress] An array of email addresses. |
preferredEmailAddressId | string The preferred email address. This string is the _id of an email address in the emailAddresses array.
minLength: 1
maxLength: 4
|
phones | [phoneNumber] An array of phone numbers. |
preferredPhoneId | string The ID of preferred phone number. This string is the _id of a phone number in the phones array.
minLength: 1
maxLength: 4
|
prefix | string A title or honorific prefix such as Dr. or Fr. maxLength: 20
|
suffix | string A title or honorific suffix such as PhD or DDS. maxLength: 20
|
preferredName | string The contact's preferred name. This is how the contact's name is presented to the user in the interface. The default is the contact's firstName .
|
identification | [identification] (required) A collection of official identifying information associated with the contact. |
preferredContactMethod | preferredContactMethod The contact's preferred method of communication. |
_id | string The unique identifier for this beneficial owner resource. This is an immutable opaque string. read-only
|
role | string The person's role at the organization. |
percentage | integer (required) The percent of the business that this person owns. maximum: 100
|
birthdate | string(date) The beneficial owners's birth date in YYYY-MM-DD format.
|
contactId | string (required) The _id of an existing contact resource associated with the beneficial owner. Create the beneficial owner contact resource using the Contacts API.
|
beneficialOwners
{
"items": [
{
"_id": "b003",
"firstName": "William",
"lastName": "Wellphunded",
"addresses": [
{
"addressLine1": "1234 S Front Street",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US",
"type": "home"
}
],
"role": "Chief Financial Officer",
"percentage": 35,
"birthdate": "1982-10-19",
"identification": [
{
"type": "taxId",
"value": "111-11-1111"
}
],
"contactId": "76e018d8-de7e-4631-aad8-fc1aa1d04bf7"
}
],
"_profile": "https://api.apiture.com/schemas/organizations/beneficialOwners/v1.2.0/profile.json",
"_links": {
"self": {
"href": "https://api.devbank.apiture.com//organizations/organizations/0399abed-fd3d-4830-a88b-30f38b8a365c/beneficialOwners"
}
}
}
Beneficial Owners (v1.2.0)
A list of people who own at least 25% of the business or who have a major role in the organization. The sum of the percentages may not exceed 100%. The percentage may be less than 25 for non-owners with a major role, or to retain other owners whose percentage may change to 25% in the future.
Properties
Name | Description |
---|---|
_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. read-only
|
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. read-only
|
items | [beneficialOwner] (required) A list of people who own at least 25% of the business, and the percentage owned. maxLength: 10
|
beneficiaries
{
"_links": {
"property1": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
},
"property2": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"items": [
{
"type": "organization",
"taxId": "wf+Btcid6QIYsID9R5cCimyco8YJVZwwkqhHrJT6UjBxK1ddL2aKLJt2w8xRzVhClCNJs",
"_encryption": {
"taxId": "secret-12345678"
},
"percent": 40,
"organization": {
"name": "Doctors Without Borders USA",
"label": "Doctors Without Borders",
"type": "nonProfit",
"subtype": "charitableTrust",
"addresses": [
{
"type": "headquarters",
"addressLine1": "40 Rector St.",
"addressLine2": "16th Floor",
"city": "New York",
"regionCode": "NY",
"postalCode": "10006"
}
]
}
}
]
}
Beneficiaries (v2.1.1)
Account beneficiaries who received the account assets if the owner dies. Beneficiaries apply only to personal accounts.
Properties
Name | Description |
---|---|
_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. read-only
|
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. read-only
|
items | [beneficiary] A list of beneficiaries who receive the account assets payable on death (POD) of the account owner(s). This array may be empty. If the array is not empty, the percentages in this array should add up to 100 and may not exceed 100. However, if the array contains exactly one beneficiary, the percentage is automatically adjusted to 100%. The maximum number of account beneficiaries is 10 (but in the future, this will be configurable by the financial institution.) Beneficiaries are updated via the patchBeneficiaries operation.
maxLength: 10
|
beneficiary
{
"type": "organization",
"taxId": "wf+Btcid6QIYsID9R5cCimyco8YJVZwwkqhHrJT6UjBxK1ddL2aKLJt2w8xRzVhClCNJs",
"_encryption": {
"taxId": "secret-12345678"
},
"percent": 40,
"organization": {
"name": "Doctors Without Borders USA",
"label": "Doctors Without Borders",
"type": "nonProfit",
"subtype": "charitableTrust",
"addresses": [
{
"type": "headquarters",
"addressLine1": "40 Rector St.",
"addressLine2": "16th Floor",
"city": "New York",
"regionCode": "NY",
"postalCode": "10006"
}
]
}
}
Beneficiary (v2.1.1)
An account beneficiary which receives a percentage of the account assets if the personal account owner dies. A beneficiary is either a person or a business organization representing a trust or charity.
Properties
Name | Description |
---|---|
type | string Indicates if this beneficiary is a business organization or an individual person.
|
taxId | string The beneficiary's encrypted taxId value. In request bodies, this must be the full tax ID, encrypted using current encryption keys. In a response, it is a masked tax ID value, with one or more leading '*' characters and only the last four characters unmasked, such as "*****3333" .
|
_encryption | encryptionMetadata Metadata about the encrypted taxId property.
|
individual | individualBeneficiary Details of a beneficiary who is an individual person. The individual property is only used if type is individual and is thus mutually exclusive with organization .
|
organization | simpleOrganization Details of a trust or charity beneficiary. The organization property is only used if type is organization and is thus mutually exclusive with individual . The organization must have a |
percentage | integer The percent of the account assets that this beneficiary should receive. A value of 0 is allowed so a user can change the percentage to a non-zero value in the future without having to enter all the beneficiary data again.
|
cd
{
"maturesAt": "2019-10-30T08:16:00.000Z",
"apyBumpedAt": "2019-10-30T08:16:00.000Z",
"term": "P6M",
"maturityPolicy": "transferPrincipalAndInterest",
"transferAccount": {
"name": "My Premiere Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210",
"full": "9876543210"
}
},
"inDebitGracePeriod": true,
"inCreditGracePeriod": true,
"gracePeriodDebitEndsAt": "2020-07-30T04:59:59.000Z",
"gracePeriodCreditEndsAt": "2020-07-30T04:59:59.000Z"
}
Certificate of Deposit (CD) Properties (v1.4.0)
Properties of a Certificate of Deposit (CD, a.k.a. Time Deposit) account.
Properties
Name | Description |
---|---|
maturesAt | string(date-time) The date-time that this account will mature. The account matures on the date which is derived by adding the duration of the term to the opening date-time. The date-time is a string in RFC 3339 UTF format: YYYY-MM-DDThh:mm:ss.sssZ .
read-only
|
apyBumpedAt | string(date-time) The date-time that the user bumped the rate after the financial institution offered a higher rate. This property only exists if the user elected to bump the APY rate during this account's current term. If the account is rolled over to a new account, this property does not exist (even if the rollover has the same account number). See the bumpApyRate operation. The date-time is a string in RFC 3339 UTF format: YYYY-MM-DDThh:mm:ss.sssZ .
read-only
|
term | string(period) The maturity term. The account matures on the date which is derived by adding the duration of the term to the opening date-time. This value is an ISO 8601 duration string of the form |
maturityPolicy | maturityPolicy What happens to the account upon maturity. |
rolloverProductName | string If this account rolls over into a new product at maturity, this is the name of the banking product for the rollover account. The product is defined in the apiture:rolloverProduct in the account's _links .
read-only
|
transferAccount | cdTransferAccount Details of the existing internal or external account where interest and/or balance are transferred at CD maturity, depending on the settings in maturityPolicy . This object only exists if the maturity policy specifies transferring. This object and the properties are derived from the account referenced by the apiture:transferTargetAccount link that is used in createAccount or updateAccount .
read-only
|
inDebitGracePeriod | boolean If this account is within the debit grace period, then it is eligible to withdraw funds without being assessed a penalty. If true the account is in the grace period in which debits are allowed.
read-only
|
inCreditGracePeriod | boolean If this account is within the credit grace period, then it is eligible to add funds without being assessed a penalty. If true the account is in the grace period in which credits are allowed.
read-only
|
gracePeriodDebitEndsAt | string(date-time) If the account is in a debit-eligible grace period, this is the date the grace period ends for debits in RFC 3339 date-time format, YYYY-MM-DDThh:mm:ssZ . Otherwise, this field is omitted.
read-only
|
gracePeriodCreditEndsAt | string(date-time) If the account is in a credit-eligible grace period, this is the date the grace period ends for credits in RFC 3339 date format, YYYY-MM-DDThh:mm:ssZ . Otherwise, this field is omitted.
read-only
|
beneficialOwnersConfirmed | boolean When updating the maturity settings for a business CD account, a true value indicates the user has confirmed the existing beneficial owners on the account. This property exists only in patchAccount request operations and is not present in responses. Note: The beneficial owners are part of the owning organization for business accounts; see the Organization's API.
|
cdTransferAccount
{
"name": "My Premiere Savings",
"title": "John Smith",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
},
"institutionName": "3rd Party Bank"
}
CD Transfer Account (v1.0.0)
Properties of the target account for transferring funds from a maturing CD account.
Properties
Name | Description |
---|---|
name | string The account name. |
title | string The title of the account. Traditionally, this is the name of the account holder. maxLength: 512
|
institutionName | string The name of the financial institution which manages the account. read-only
minLength: 2
maxLength: 128
|
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. read-only
minLength: 9
maxLength: 9
|
accountNumbers | accountNumbers The masked and full account numbers for this account. The full value only appears when ?unmasked=true is passed on the GET request.
read-only
|
collection
{
"_links": {
"property1": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
},
"property2": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"count": 0,
"start": 0,
"limit": 0,
"name": "string"
}
Collection (v2.0.0)
A collection of resources. This is an abstract model schema which is extended to define specific resource collections.
Properties
Name | Description |
---|---|
_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. read-only
|
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. read-only
|
count | integer The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
configurationGroup
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.1/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/basic"
}
},
"name": "basic",
"label": "Basic Settings",
"description": "The basic settings for the Transfers API",
"schema": {
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
},
"values": {
"dailyLimit": 5,
"cutoffTime": 63000
}
}
Configuration Group (v2.0.1)
Represents a configuration group.
Properties
Name | Description |
---|---|
_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. read-only
|
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. read-only
|
name | string The name of this configuration group, must be unique within the set of all resources of this type. minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
|
label | string The text label for this resource, suitable for presentation to the client. minLength: 1
maxLength: 128
|
description | string The full description for this resource, suitable for presentation to the client. minLength: 1
maxLength: 4096
|
schema | configurationSchema The schema which defines the name and types of the variables that are part of this configuration definition. Property names must be simple identifiers which follow the pattern letter [letter | digit | - | _]* . This is implicitly a schema for The |
values | configurationValues The data values associated with this configuration group: the group's variable names and values. These values must conform to this item's schema . Note: the For example, multiple configurations may use the same schema that defines values |
configurationGroupSummary
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroupSummary/v2.0.0/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/basic"
}
},
"name": "basic",
"label": "Basic Settings",
"description": "The basic settings for the Transfers API"
}
Configuration Group Summary (v2.0.0)
A summary of the data contained within a configuration group resource.
Properties
Name | Description |
---|---|
_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. read-only
|
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. read-only
|
name | string The name of this configuration group, must be unique within the set of all resources of this type. minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
|
label | string The text label for this resource, suitable for presentation to the client. minLength: 1
maxLength: 128
|
description | string The full description for this resource, suitable for presentation to the client. minLength: 1
maxLength: 4096
|
configurationGroups
{
"_profile": "https://production.api.apiture.com/schemas/configurations/configurationGroups/v2.0.1/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "configurationGroups",
"_links": {
"self": {
"href": "/configurations/configurations/groups?start=10&limit=10"
},
"first": {
"href": "/configurations/configurations/groups?start=0&limit=10"
},
"next": {
"href": "/configurations/configurations/groups?start=20&limit=10"
},
"collection": {
"href": "/configurations/configurations/groups"
}
},
"_embedded": {
"items": [
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.1/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/basic"
}
},
"name": "basic",
"label": "Basic Settings",
"description": "The basic settings for the Transfers API"
},
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.1/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/calendar"
}
},
"name": "calendar",
"label": "Calendar",
"description": "A calendar that specifies which dates are valid for performing transfers (e.g., weekdays excluding federal holidays)"
}
]
}
}
Configuration Group Collection (v2.0.1)
Collection of configuration groups. The items in the collection are ordered in the _embedded
object with name items
. The top-level _links
object may contain pagination links (self
, next
, prev
, first
, last
, collection
).
Properties
Name | Description |
---|---|
_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 | configurationGroupsEmbedded Embedded objects. |
_profile | string(uri) The URI of a resource profile which describes the representation. read-only
|
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. read-only
|
count | integer The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
configurationGroupsEmbedded
{
"items": [
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroupSummary/v2.0.0/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/basic"
}
},
"name": "basic",
"label": "Basic Settings",
"description": "The basic settings for the Transfers API"
}
]
}
Configuration Groups Embedded Objects (v1.0.0)
Objects embedded in the configurationGroups
collection.
Properties
Name | Description |
---|---|
items | [configurationGroupSummary] An array containing a page of configuration group items. |
configurationSchema
{
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
}
Configuration Schema (v2.0.1)
The schema which defines the name and types of the variables that are part of this configuration definition. Property names must be simple identifiers which follow the pattern letter [letter | digit | - | _]*
.
This is implicitly a schema for type: object
and contains the properties.
The values
in a configuration conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.
Properties
Name | Description |
---|---|
additionalProperties | configurationSchemaValue The data associated with this configuration schema. |
configurationSchemaValue
{}
Configuration Schema Value (v2.0.0)
The data associated with this configuration schema.
Properties
configurationValue
{}
Configuration Value (v2.0.0)
The data associated with this configuration.
Properties
configurationValues
{
"dailyLimit": 5,
"cutoffTime": 63000
}
Configuration Values (v2.0.0)
The data values associated with this configuration group: the group's variable names and values. These values must conform to this item's schema
.
Note: the schema
may also contain default
values which, if present, are used if a value is not set in the definition's values
.
For example, multiple configurations may use the same schema that defines values a
, b
, and c
, but each configuration may have their own unique values for a
, b
, and c
which is separate from the schema.
Properties
Name | Description |
---|---|
additionalProperties | configurationValue The data associated with this configuration. |
constraints
{
"transactionTypes": [
"debit"
],
"minimumBalance": "500.00",
"minimumFundingAmount": "500.00",
"maximumFundingAmount": "2500.00",
"minimumTransferAmount": "25.00",
"maximumTransferAmount": "10000.00",
"maximumWithdrawalCount": 6,
"fundingTerm": "P30D",
"depositsRestrictedAfterGracePeriod": true,
"depositsRestrictedAfterFunding": true,
"gracePeriod": "P14D"
}
Product Constraints (v1.0.0)
Product constraints, such as minimum and maximum balances.
Properties
Name | Description |
---|---|
transactionTypes | transactionTypes The types of transactions permitted for this account. Values which appear in this array are permitted. |
minimumBalance | string The minimum balance for accounts of this product. The numeric value is represented as a string so that it can be exact with no loss of precision. This balance is in the currency for the product.
|
minimumFundingAmount | string The minimum monetary value when funding a new account of this product. The numeric value is represented as a string so that it can be exact with no loss of precision. This balance is in the currency for the product.
|
maximumFundingAmount | string The maximum monetary value when funding a new account of this product. The numeric value is represented as a string so that it can be exact with no loss of precision. This balance is in the currency for the product.
|
minimumTransferAmount | string The minimum monetary value for new transfers from accounts of this product. The numeric value is represented as a string so that it can be exact with no loss of precision. This balance is in the currency for the product.
|
maximumTransferAmount | string The maximum monetary value for new transfers from accounts of this product. The numeric value is represented as a string so that it can be exact with no loss of precision. This balance is in the currency for the product.
|
maximumWithdrawalCount | integer The maximum number of withdrawals allowed per cycle. If not present, there is no hard limit. |
fundingTerm | string(period) The time limit within which account opening funding must occur after account creation. This is expressed as an ISO 8601 duration duration; only day and month periods are allowed, and the only allowed fractional value for months is 0.5, as in P5D or P14D or P1M or P0.5M .
|
depositsRestrictedAfterGracePeriod | boolean If true, deposits are not allowed after the rollover grace period (see gracePeriod ). This applies to time deposit products only.
Default: true
|
depositsRestrictedAfterFunding | boolean If true, deposits are not allowed after the initial account funding has completed. This typically applies to time deposit products. Default: true
|
gracePeriod | string(period) A period of time after account rollover when additional deposits are allowed. This is an ISO 8601 duration duration; only day and month periods are allowed, and the only allowed fractional value for months is 0.5, as in P5D or P14D or P1M or P0.5M .
|
createAccount
{
"_profile": "https://api.apiture.com/schemas/accounts/createAccount/v1.0.0/profile.json",
"name": "My car savings account",
"description": "My savings account used to save for a new car, opened in 2019. I try to put $550/month into this account.",
"_links": {
"apiture:user": {
"href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:organization": {
"href": "/organizations/organizations/a1c9212c-0a5c-4779-a3fc-95e1c1e92e71"
},
"apiture:application": {
"href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
}
}
}
Create Account (v1.0.0)
Representation used to create a new account. The request must contain a link to an active product, user, organization (for a business account) and, optionally, an approved account application; the account type and product are extracted from that product resource, and additional associations to people or organizations that should be attached to the account may come from the application, such as co-owners, owning business (if not passed in the apiture:organization
link), etc. The product must be passed as apiture:product
, user as apiture:user
, organization as apiture:organization
, and account application should be passed as the apiture:application
link in _links
in the request.
Interest-bearing accounts can either have interest disbursements capitalized (back into the account) or transferred to another internal account or an external account. This account is specified in the apiture:interestTargetAccount
link in the request's _links
. The account must be active and eligible for deposits/credits. This link can be updated in the patchAccount
operations.
An account for a Certificate of Deposit (CD, a.k.a. Time Deposit) account may also specify an apiture:rolloverProduct
link at creation time. If this account rolls over into a new product at maturity, this link is the URI of the banking product for the rollover account (see the Products API). This is used if cd.maturityPolicy
is rolloverPrincipalAndInterest
or rolloverPrincipalAndTransferInterest
.
CD accounts may also specify an existing account (savings, checking) to transfer principal and/or interest to upon maturity in the apiture:transferTargetAccount
link. The account must be an internal account which is active and available for deposits. This is used if cd.maturityPolicy
is transferPrincipalAndInterest
or rolloverPrincipalAndTransferInterest
.
An apiture:user
must be defined for specifying the owner of a non-business account and as an authorized signer of a business account.
Business accounts must specify the organization owning the account as an organization link, such as apiture:organization
.
Properties
Name | Description |
---|---|
_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. read-only
|
name | string The user-assigned name of this account. minLength: 1
maxLength: 128
|
description | string The user-assigned description of this account. minLength: 1
maxLength: 4096
|
interestPolicy | interestPolicy How interest credits on the account (if any) are disbursed. This field is none for non-interest bearing accounts. If this is transfer , the apiture:interestTargetAccount link in the account's _link references the target account for the disbursements. This field applies if the account is a CD (Certificate of Deposit a.k.a. Time Deposit) account.
|
createExternalAccount
{
"_profile": "https://api.apiture.com/schemas/accounts/createExternalAccount/v1.1.0/profile.json",
"name": "My account at 3rdParty Bank",
"institutionName": "3rd Party Bank",
"primaryUserName": "Lana Michaels",
"type": "savings",
"ifxType": "SDA",
"routingNumber": "021000021",
"accountNumbers": {
"full": "9876543210"
},
"_embedded": {
"accountOwners": [
{
"firstName": "Steven",
"middleName": "Benjamin",
"lastName": "Storey",
"fullName": "Steven B. Storey",
"type": "primary",
"addresses": [
{
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401",
"countryCode": "US"
}
]
}
]
},
"_links": {
"apiture:productType": {
"href": "/products/productTypes/a93c19ba-f96d-4b30-8dd7-92b2d6ffcb0b"
}
}
}
Create External Account (v1.1.0)
Representation used to create a new external account. The request should include a apiture:productType
link to a product type.
Links
Response and request bodies using this createExternalAccount
schema may contain the following links:
Rel | Summary | Method |
---|---|---|
apiture:productType | URI of the corresponding banking product type. | GET |
Properties
Name | Description |
---|---|
name | string (required) The user-assigned name of this external account maxLength: 128
|
description | string The user-assigned description of this external account. maxLength: 4096
|
institutionName | string (required) The name of the financial institution. minLength: 2
maxLength: 128
|
primaryUserName | string The primary user or owner of the external account. maxLength: 128
|
title | string The name of the account holder. This is derived from the user resource. maxLength: 512
|
type | string (required) The type of account. This is the name of an external product type associated with this external account. (The product type is defined in the Products API.) |
ifxType | ifxType A code which identifies the product type. This is one of the IFX AcctType values. |
routingNumber | string (required) The account routing number which identifies the financial institution. The full routing number and full account number are required to fully identify the account. minLength: 9
maxLength: 9
|
state | externalAccountState The state of the external account. read-only
|
verifiedAt | string(date-time) The date-time when the external account was most recently verified. This is in RFC 3339 format, UTC. |
attributes | attributes An optional map of name/value pairs which contains additional dynamic data about the resource. |
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | createExternalAccountEmbeddedObjects Embedded objects. |
_profile | string(uri) The URI of a resource profile which describes the representation. read-only
|
accountNumbers | createExternalAccountNumbers (required) The masked and full account number |
createExternalAccountEmbeddedObjects
{
"accountOwners": [
{
"firstName": "Steven",
"middleName": "Benjamin",
"lastName": "Storey",
"fullName": "Steven B. Storey",
"type": "primary",
"addresses": [
{
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401",
"countryCode": "US"
}
]
}
]
}
External Account Embedded Objects (v1.1.0)
Optional embedded resources (the owners) to include when creating an external account.
Properties
Name | Description |
---|---|
accountOwners | [externalAccountOwner] The array of account owners. This may be an empty array (0 items) but is always present. |
createExternalAccountNumbers
{
"full": "9876543210"
}
Create External Account Numbers (v1.0.0)
The account numbers necessary to link an external account.
Properties
Name | Description |
---|---|
full | string (required) The full account number. Pass in this value when linking an external account. This field can be updated whenever the account is still in the pending state. minLength: 4
maxLength: 17
|
emailType
"unknown"
Email Type (v1.0.0)
The kind of email address.
Warning: The enum
list will be removed in a future release.
The allowed values for this property are defined at runtime in the label group named emailType
in the response from the getLabels
operation.
Type: string
Enumerated values: unknown
personal
work
school
other
notApplicable
embeddedAccountObjects
{
"owners": {
"items": [
{
"_id": "p001",
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "10047294723672",
"type": "primary",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "*****3333",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
],
"_profile": "https://api.apiture.com/schemas/accounts/owners/v1.1.0/profile.json"
},
"beneficiaries": {
"_links": {
"property1": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
},
"property2": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"items": [
{
"type": "organization",
"taxId": "wf+Btcid6QIYsID9R5cCimyco8YJVZwwkqhHrJT6UjBxK1ddL2aKLJt2w8xRzVhClCNJs",
"_encryption": {
"taxId": "secret-12345678"
},
"percent": 40,
"organization": {
"name": "Doctors Without Borders USA",
"label": "Doctors Without Borders",
"type": "nonProfit",
"subtype": "charitableTrust",
"addresses": [
{
"type": "headquarters",
"addressLine1": "40 Rector St.",
"addressLine2": "16th Floor",
"city": "New York",
"regionCode": "NY",
"postalCode": "10006"
}
]
}
}
]
},
"owningBusiness": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"customerId": "1000489353781",
"_profile": "https://api.apiture.com/schemas/organizations/organization/v1.2.1/profile.json",
"name": "Smith's Auto Detailing",
"label": "Smith's Detailing",
"tradeName": "Smith's Auto Detailing",
"emailAddresses": [
{
"_id": "ea0",
"type": "work",
"value": "smitties-detailing@example.com"
}
],
"preferredEmailAddressId": "ea0",
"phones": [
{
"type": "work",
"number": "+19105550155",
"_id": "wp0"
},
{
"type": "mobile",
"number": "+191055501554",
"_id": "wp1"
}
],
"preferredPhoneNumberId": "wp0",
"addresses": [
{
"type": "work",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"type": "work",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "wa0",
"establishedOn": "2009-07-09",
"identification": [
{
"type": "taxId",
"value": "00-9999999"
}
],
"state": "active",
"governmentOwned": false,
"registeredIn": "NC",
"publiclyHeld": false,
"smallBusiness": true,
"taxExempt": false,
"currency": "USD",
"achEnabled": true,
"mobileCheckDepositEnabled": true,
"wireEnabled": true,
"estimatedAnnualRevenue": "from1to10Million",
"estimatedMonthlyAmounts": {
"percentGrossRevenue": "from0to25Percent",
"sentWire": "moreThanOneMillion",
"receivedWire": "oneHundredThousandToOneMillion",
"mobileCheckDeposit": "upToOneHundredThousand",
"receivedAch": "upToOneHundredThousand",
"sentAch": "moreThanOneMillion"
},
"type": "corporation",
"subtype": "soleProprietorship",
"employeeCountLowerBound": 1,
"employeeCountUpperBound": 1,
"countryOfOperations": "US",
"yearsOwned": "two",
"physicalLocationsCount": "under10",
"regulatory": {
"estimatedAnnualRevenue": "from1to10Million",
"atmOperator": false,
"charity": false,
"cashesChecksMoreThan1000Usd": false,
"internetGamblingIncorporated": false,
"marijuanaBusiness": false,
"moneyOrderMoreThan1000Usd": false,
"thirdPartyBenefit": false,
"transmitBehalfOfCustomer": false,
"virtualCurrency": false,
"intermediaryServices": [
"trustManagement"
],
"subjectToWithholdings": true
},
"authorizedSigners": [],
"beneficialOwners": [],
"coreBanking": {
"finxact": {
"customerGroup": "--64964c9c8e8f----2d-5e-",
"partyOrgId": "--4WS6lkgjD4u-----5F-Bg-"
}
},
"createdAt": "2018-04-17T10:04:46.375Z",
"updatedAt": "2018-04-17T10:12:58.375Z",
"_links": {
"self": {
"href": "/organizations/organizations/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/organizations/inactiveOrganizations?organization=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {}
},
"authorizedSigners": {
"items": [
{
"_id": "as001",
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "10047294723672",
"type": "authorizedSigner",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "*****3333",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
],
"_profile": "https://api.apiture.com/schemas/organizations/authorizedSigners/v1.1.0/profile.json"
},
"product": {
"_id": "a6459cdf-543e-46df-887b-ac5378ee9acd",
"_profile": "https://api.apiture.com/schemas/products/summaryProduct/v2.1.0/profile.json",
"name": "Premiere Checking",
"label": "Premiere Checking",
"description": "A premiere demand deposit checking account for business use.",
"state": "active",
"type": "Demand Deposit",
"subtype": "Demand Deposit with Interest",
"newAccountAvailability": "available",
"target": "business",
"_embedded": {},
"ifxType": "DDA",
"rates": {
"apy": "1.45",
"nominal": "1.455",
"apye": "1.45",
"compoundPeriod": "P1D",
"accrualType": "compounding"
},
"_links": {
"self": {
"href": "/products/products/a6459cdf-543e-46df-887b-ac5378ee9acd"
},
"apiture:productType": {
"href": "/products/productTypes/4d4242ed-eb8d-46ca-bc3c-13e1f82337c8"
},
"apiture:productSubtype": {
"href": "/products/productTypes/fa4f2335-3306-4721-b74c-8ec0c77823e9"
}
}
}
}
Embedded Account Objects (v1.2.0)
Embedded objects to include within an account's _embedded
object, as selected with the embed
query parameter on the getAccount
operation.
Properties
Name | Description |
---|---|
owners | owners A personal account's primary and joint owners. This object is only available for personal accounts. |
beneficiaries | beneficiaries A personal account's primary and joint owners. This object is only available for personal accounts. |
owningBusiness | organization A business account's owning organization. This object is only available for business accounts. This is derived from the organization in the account application resource with which the account was created. This object is an Organization in the Organizations API. The business organization maintains a list of authorized signers who having permission to banking activity on the account.
read-only
|
authorizedSigners | authorizedSigners A list of authorized signers for a business account. This object is only available for business accounts. |
product | summaryProduct Summary representation of a product resource in products collections. |
encryptionMetadata
{
"property1": "string",
"property2": "string"
}
Enryption Metadata (v1.0.1)
Metadata about encrypted data within a JSON object in a request body. This _encryption
object is a peer of the encrypted data. Each nested object that contains encrypted properties has it's own _encryption
object.
This object is a map of string
property names → string
encryption key alias. The keys are names of the encrypted and Base64 encoded property. Each value is the alias
of the rotating public encryption key that the client used to encrypt the named property. See Encryption for additional details.
Properties
Name | Description |
---|---|
additionalProperties | string |
error
{
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
Error (v2.0.0)
Describes an error in an API request or in a service called via the API.
Properties
Name | Description |
---|---|
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. read-only
|
statusCode | integer The HTTP status code associate with this error. minimum: 100
maximum: 599
|
type | string An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode . For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet .
|
occurredAt | string(date-time) An RFC 3339 UTC time stamp indicating when the error occurred. |
attributes | attributes Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type .
|
remediation | string An optional localized string which provides hints for how the user or client can resolve the error. |
errors | [error] An optional array of nested error objects. This property is not always present. |
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
errorResponse
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.0.0/profile.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://api.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Error Response (v2.0.0)
Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error
object contains the error details.
Properties
Name | Description |
---|---|
_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. read-only
|
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. read-only
|
estimatedAnnualRevenue
"unknown"
Estimated Annual Revenue (v1.0.0)
The estimated annual revenue in USD.
Warning: the enum
list will be removed in a future release and the values defined at runtime via the estimatedAnnualRevenue
group in the response from the getLabels
operation.
Type: string
Enumerated values: unknown
under1Million
from1to10Million
from10to100Million
over100Million
other
notApplicable
estimatedMonthlyAmounts
{
"percentGrossRevenue": "string",
"sentAch": "upToOneHundredThousand",
"receivedAch": "oneHundredThousandToOneMillion",
"mobileCheckDeposit": "oneHundredThousandToOneMillion",
"sentWire": "oneHundredThousandToOneMillion",
"receivedWire": "moreThanOneMillion"
}
Estimated Monthly Amounts (v1.0.0)
Estimated monthly amounts for banking services.
Properties
Name | Description |
---|---|
percentGrossRevenue | string The percentage of gross revenue the organization derives from money services. The allowed values for this property are defined at runtime in the label group named |
sentAch | string Indicates the estimated monthly total amount to send by ACH. The allowed values for this property are defined at runtime in the label group named |
receivedAch | string Indicates the estimated monthly total amount to receive by ACH. The allowed values for this property are defined at runtime in the label group named |
mobileCheckDeposit | string Indicates the estimated monthly minimum amount to deposit. The allowed values for this property are defined at runtime in the label group named |
sentWire | string Indicates the estimated monthly minimum wires amount sent. The allowed values for this property are defined at runtime in the label group named |
receivedWire | string Indicates the estimated monthly minimum wires amount received. The allowed values for this property are defined at runtime in the label group named |
externalAccount
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.1.1/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {
"productType": {
"_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
"_profile": "https://api.apiture.com/schemas/products/productType/v1.0.1/profile.json",
"name": "savings",
"label": "Personal Savings"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"institutionName": "3rdParty Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
}
External Account (v1.1.1)
Representation of an external account resource, a banking account held by another financial institution.
Links
Response and request bodies using this externalAccount
schema may contain the following links:
Rel | Summary | Method |
---|---|---|
self | Fetch a representation of this external account | GET |
apiture:activate | Activate an account | POST |
apiture:deactivate | Deactivate an account | POST |
apiture:freeze | Freeze an account | POST |
apiture:close | Close an account | POST |
apiture:review | The account is under review | POST |
Properties
Name | Description |
---|---|
_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 | externalAccountEmbeddedObjects Embedded objects. |
_profile | string(uri) The URI of a resource profile which describes the representation. read-only
|
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. read-only
|
name | string The user-assigned name of this external account maxLength: 128
|
description | string The user-assigned description of this external account. maxLength: 4096
|
institutionName | string The name of the financial institution. minLength: 2
maxLength: 128
|
primaryUserName | string The primary user or owner of the external account. maxLength: 128
|
title | string The name of the account holder. This is derived from the user resource. maxLength: 512
|
type | string The type of account. This is the name of an external product type associated with this external account. (The product type is defined in the Products API.) |
ifxType | ifxType A code which identifies the product type. This is one of the IFX AcctType values. |
routingNumber | string The account routing number which identifies the financial institution. The full routing number and full account number are required to fully identify the account. minLength: 9
maxLength: 9
|
state | externalAccountState The state of the external account. read-only
|
verifiedAt | string(date-time) The date-time when the external account was most recently verified. This is in RFC 3339 format, UTC. |
attributes | attributes An optional map of name/value pairs which contains additional dynamic data about the resource. |
_id | string The unique identifier for this external account resource. This is an immutable opaque string. read-only
|
createdAt | string(date-time) The date-time when the external account was created. This is in RFC 3339format, UTC. This is derived and immutable. |
accountNumbers | externalAccountNumbers The masked and full account number |
externalAccountEmbeddedObjects
{
"accountOwners": [
{
"firstName": "Steven",
"middleName": "Benjamin",
"lastName": "Storey",
"fullName": "Steven B. Storey",
"type": "primary",
"addresses": [
{
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401",
"countryCode": "US"
}
]
}
]
}
External Account Embedded Objects (v1.0.0)
Embedded objects to include within an external account's _embedded
object, as selected with the embed
query parameter on the getExternalAccounts
operation.
Properties
Name | Description |
---|---|
accountOwners | [externalAccountOwner] The array of account owners. |
externalAccountNumbers
{
"masked": "*************3210",
"full": "9876543210"
}
External Account Numbers (v1.0.0)
The account numbers necessary to link an external account.
Properties
Name | Description |
---|---|
masked | string A partial account number that does not contain all the digits of the full account number. This masked number appears in statements or in user experience presentation. It is sufficient for a user to differentiate this account from other accounts they hold, but is not sufficient for initiating transfers, etc. The first character is the mask character and is repeated; this does not indicate that the full account number is the same as the mask length. This value is included when accounts are embedded in collections or other resources. This value is derived and immutable. read-only
minLength: 8
maxLength: 32
|
full | string The full account number. This value only appears when ?unmasked=true is passed on the GET request for an account. Not included in the summary representation of the account that is included in account collection responses. Pass in this value when linking an external account. This field can be updated whenever the account is still in the pending state.
minLength: 4
maxLength: 17
|
externalAccountOwner
{
"firstName": "Steven",
"middleName": "Benjamin",
"lastName": "Storey",
"fullName": "Steven B. Storey",
"type": "primary",
"addresses": [
{
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Apt 555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401",
"countryCode": "US"
}
]
}
External Account Owner (v1.1.0)
An external account owner. Since this is a small finite set, this is not a paginated collection, just an array.
Properties
Name | Description |
---|---|
firstName | string The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string The person's last name (or surname). |
fullName | string The account owner's full name (first name and last name or owning business name). maxLength: 128
|
type | authorizationType The account owner's ownership type. |
addresses | [address] The owner's addresses; addresses[0] is the primary mailing address of the owning individual or business.
|
externalAccountOwners
{
"_profile": "https://api.apiture.com/schemas/accounts/externalAccountOwners/v1.1.0/profile.json",
"accountOwners": [
{
"firstName": "Steven",
"middleName": "Benjamin",
"lastName": "Storey",
"fullName": "Steven B. Storey",
"type": "primary"
}
]
}
External Account Owners (v1.1.0)
A (possibly empty) list of external account owners. Since this is a small finite set, this is not a paginated collection, just an array.
Properties
Name | Description |
---|---|
_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. read-only
|
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. read-only
|
accountOwners | [externalAccountOwner] (required) The array of account owners. This may be an empty array (0 items) but is always present. |
externalAccountState
"active"
External Account State (v1.1.0)
The state of an external (linked) banking account. This field is immutable and derived.
To change the state of an account, POST
the account ID to the corresponding resource endpoints, using the corresponding link on the external account resource:
- To activate an account, use the
apiture:activate
link toPOST
to/accounts/activeAccounts
. * To deactivate an account, use theapiture:deactivate
link toPOST
to/accounts/inactiveAccounts
. * To freeze an account, use theapiture:freeze
link toPOST
to/accounts/frozenAccounts
. * To close an account, use theapiture:close
link toPOST
to/accounts/closedAccounts
. * To mark an account as under review, use theapiture:review
link toPOST
to/accounts/externalAccountsUnderReview
. * To mark an account as being verified via micro-deposits, use theapiture:requestMicroDepositVerification
link toPOST
to/externalAccountsNeedingMicroDepositVerification
.
externalAccountState
strings may have one of the following enumerated values:
Value | Description |
---|---|
pending | Pending: A new external account that has not been verified. |
verifying | Verifying: A new account that is being verified. This state only applies to external accounts. |
failed | Failed: A external account which has failed account verification. |
active | Active: An account which is active and available for use and for making new transactions. |
inactive | Inactive: An account which is marked inactive and not available for new transactions. Inactive accounts may be changed back to active. |
frozen | 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 | 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 accounts. |
underReview | Under Review: A new external account that under is review. |
microDepositsRequested | Micro-deposits Requested: A new external account that is starting micro deposits verification. This state only applies to external accounts. |
These enumeration values are further described by the label group named externalAccountState
in the response from the getLabels
operation.
Type: string
Enumerated values: pending
verifying
failed
active
inactive
frozen
closed
underReview
microDepositsRequested
externalAccountSummaries
{
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/summaryExternalAccount/v1.1.0/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
},
"institutionName": "3rd Party Bank",
"primaryUserName": "Lana Michaels"
}
]
}
External Account Summaries (v1.0.0)
A page of embedded external account summaries.
Properties
Name | Description |
---|---|
items | [summaryExternalAccount] (required) An array containing a page of external account items. |
externalAccounts
{
"_profile": "https://api.apiture.com/schemas/accounts/externalAccounts/v1.1.0/profile.json",
"start": "10",
"limit": 10,
"count": 67,
"name": "external accounts",
"_links": {
"self": {
"href": "/accounts/externalAccounts?start=10&limit=10"
},
"first": {
"href": "/accounts/externalAccounts?start=0&limit=10"
},
"next": {
"href": "/accounts/externalAccounts?start=20&limit=10"
},
"collection": {
"href": "/accounts/externalAccounts"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My account at 3rdParty Bank",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.1.1/profile.json",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"institutionName": "3rdParty Bank",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
},
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
]
}
}
External Account Collection (v1.1.0)
Collection of external accounts. The items in the collection are ordered in the _embedded
object with name items
. The top-level _links
object may contain pagination links (self
, next
, prev
, first
, last
, collection
).
Properties
Name | Description |
---|---|
_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 | externalAccountSummaries (required) Embedded objects. |
_profile | string(uri) The URI of a resource profile which describes the representation. read-only
|
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. read-only
|
count | integer The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
identification
{
"type": "taxId",
"value": "112-22-3333",
"expiration": "2024-12-01"
}
Identification (v1.0.1)
Official identifying information associated with the contact.
Properties
Name | Description |
---|---|
value | string (required) The value of this form of identification, such as tax ID as a string. The caller should pass the full value (for example "112-22-3333" ) when creating a contact or user. The input value may include '-' formatting characters. This is a masked value in API responses, with one or more leading '*' characters and only the last four characters unmasked, such as "*****3333" .
|
type | identificationType (required) The type of this form of identification. |
expiration | string(date) The date when the form of identification expires, in RFC 3339 YYYY-MM-DD format.
|
identificationType
"taxId"
Identification Type (v1.0.0)
The type of this form of identification.
identificationType
strings may have one of the following enumerated values:
Value | Description |
---|---|
taxId | Tax ID: The government tax ID, such as a Social Security Number |
passportNumber | Passport Number |
These enumeration values are further described by the label group named identificationType
in the response from the getLabels
operation.
Type: string
Enumerated values: taxId
passportNumber
ifxType
"CCA"
IFX Account Type (v1.0.0)
A code which identifies the product type. This is one of the IFX AcctType values. Labels and descriptions for the enumeration values are in the ifxType
key in the response of the getLabels
operation.
ifxType
strings may have one of the following enumerated values:
Value | Description |
---|---|
CCA | Credit card account |
CDA | Certificate of deposit account (CD) |
CLA | Commercial loan account |
CMA | Cash management account |
DDA | Demand deposit account |
EQU | Home equity loan |
GLA | General ledger account |
ILA | Installment loan account |
INV | Investment account |
IRA | Individual retirement account |
IRL | Accounts held in Ireland |
LOC | Consumer line of credit |
MLA | Military Lending Account: Credit facility held by former US service member |
MMA | Money market account |
PBA | Packaged bank Account: Account with additional benefits that charges a fixed monthly fee. |
PPA | Private pension administrator |
RWD | Reward accounts |
SDA | Savings deposit account |
These enumeration values are further described by the label group named ifxType
in the response from the getLabels
operation.
Type: string
Enumerated values: CCA
CDA
CLA
CMA
DDA
EQU
GLA
ILA
INV
IRA
IRL
LOC
MLA
MMA
PBA
PPA
RWD
SDA
individualBeneficiary
{
"type": "individual",
"percent": 40,
"individual": {
"firstName": "Bobby",
"lastName": "Tables",
"birthDate": "1990-01-01",
"emailAddress": "test@example.com",
"relationship": "Person",
"phoneNumbers": {
"number": "+19105550155",
"type": "mobile"
}
},
"taxId": "dhjke45785huryur89rid7liuld8973hdodhwliw474hq4gp47h",
"_encryption": {
"taxid": "secret-12345678"
}
}
Individual Beneficiary (v1.1.0)
Details of a beneficiary who is an individual person. The individual
property is only used if type
is individual
and is thus mutually exclusive with organization
.
Properties
Name | Description |
---|---|
firstName | string (required) The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string (required) The person's last name (or surname). |
addresses | [address] (required) An array of postal/mailing addresses. |
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
|
taxId | string Official government identification (tax ID) for this person. This will return a masked tax ID, where only the last 4 digits are visible. If the ?unmasked=true query parameter is passed, the full, unmasked tax ID is returned.
|
citizen | boolean Indicates if the person is a (US) citizen. |
emailAddress | string(email) Optional email address. |
phones | [phoneNumber] An array of phone numbers. |
preferredPhoneId | string The ID of preferred phone number. This string is the _id of a phone number in the phones array.
minLength: 1
maxLength: 4
|
birthdate | string(date) (required) The beneficiary's birth date in YYYY-MM-DD format.
|
relationship | string The beneficiary's relationship to the primary account owner, such as "child" or "spouse" .
|
interest
{
"yearToDate": "3.12",
"sinceOpening": "34.62"
}
Interest (v1.0.0)
The account's accrued interest. The values are in the currency
associated with the account.
Properties
Name | Description |
---|---|
yearToDate | string The interest earned to date since the beginning of the year. read-only
|
sinceOpening | string The interest earned since the account was opened. read-only
|
interestPolicy
"none"
Account Interest Policy (v1.0.0)
How interest credits on the account (if any) are disbursed.
interestPolicy
strings may have one of the following enumerated values:
Value | Description |
---|---|
none | None: This account does not earn interest. |
capitalize | Capitalize: When interest is posted, it is deposited back into the account. |
transfer | Transfer: When interest is posted, it is transferred to another account. |
These enumeration values are further described by the label group named interestPolicy
in the response from the getLabels
operation.
Type: string
Enumerated values: none
capitalize
transfer
interestRateType
"apr"
Interest Rate Type (v1.0.0)
The rate type. The rate type may not be changed once it is set at product creation. Rate types are:
apr
- annual percentage rateapy
- annual percentage yield
Warning: The schemainterestRateType
was deprecated on versionv0.20.0
of the API. Useapy
andapr
properties inproductInterestRates
instead.interestRateType
will be removed on versionv0.22.0
of the API.
Type: string
Enumerated values: apr
apy
interestRates
{
"apy": "1.24",
"nominal": "1.242",
"apye": "1.24",
"promotional": false
}
Interest Rates (v1.2.0)
The interest rates of the account. For deposit accounts, the rates describe the rate of return; for loan accounts, this includes the interest rate charged on balances. The values strings containing a decimal percentage in order to represent the rate exactly to two or three decimal places (as indicated by the pattern) For example, "1.24"
means 1.24%.
Properties
Name | Description |
---|---|
apy | string(decimal) The annual percentage yield (APY) i the effective yield from interest, including compounding, as a percentage. read-only
pattern: ^-?\d{1,2}\.\d{2}$
|
apye | string(decimal) The annual percentage yield that this account is earning. The apye is an annualized rate based on the amount of interest actually earned, including compounding, as a percentage of the account's average daily balance. The apye is updated every account statement period.
read-only
pattern: ^-?\d{1,2}\.\d{2}$
|
nominal | string(decimal) The interest rate that is effective as of the current day. This is the rate before accounting for inflation. read-only
pattern: ^-?\d{1,2}\.\d{2,3}$
|
bumpToApy | string(decimal) The APY of a new rate offered by the financial institution. This property exists if and only if the associated deposit product offers a new bumped APY rate, typically only on CD (time-deposit) accounts that normally have a fixed APY for the term of the CD. The user can accept this APY increase offer via the bumpApyRate operation.
read-only
pattern: ^-?\d{1,2}\.\d{2}$
|
originalApy | string(decimal) The original APY for this account's term, before the user bumped the APY rate, and before any promotional rates are applied. If the user bumped the rate, the apy reflects the new bumped APY. This property exists only on CD time-deposit accounts and only if the user has previously bumped APY rate.
read-only
pattern: ^-?\d{1,2}\.\d{2}$
|
apr | string(decimal) The base annual percentage rate (APR); typically present on loan accounts. read-only
pattern: ^-?\d{1,2}\.\d{2,3}$
|
promotional | boolean If true the current rate is a promotional rate.
|
interestTargetAccount
{
"name": "My Premiere Savings",
"title": "John Smith",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
},
"institutionName": "3rd Party Bank"
}
Interest Target Account (v1.0.0)
Properties of the target where the financial institution transfers interest disbursements.
Properties
Name | Description |
---|---|
name | string The account name. |
title | string The title of the account. Traditionally, this is the name of the account holder. maxLength: 512
|
institutionName | string The name of the financial institution which manages the account. read-only
minLength: 2
maxLength: 128
|
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. read-only
minLength: 9
maxLength: 9
|
accountNumbers | accountNumbers The masked and full account numbers for this account. The full value only appears when ?unmasked=true is passed on the GET request.
read-only
|
intermediaryServices
"unknown"
Intermediary Services (v1.0.0)
The intermediary/non-bank financial institution services provided.
Warning: the enum
list will be removed in a future release and the values defined at runtime via the intermediaryServices
group in the response from the getLabels
operation.
Type: string
Enumerated values: unknown
accounting
fundsManagement
insurance
investment
legal
medical
notary
realEstate
taxPreparation
trustManagement
gambling
securities
loanFinance
pawnBrokerage
travelAgency
vehicleSales
foreignCurrency
preciousMetals
other
notApplicable
internalAccountState
"active"
Internal Account State (v1.0.0)
The state of the account. This field is immutable and derived.
To change the state of an account, POST
the account ID to the corresponding resource endpoints, using the corresponding link on the account resource:
- To activate an account, use the
apiture:activate
link toPOST
to/accounts/activeAccounts
. * To deactivate an account, use theapiture:deactivate
link toPOST
to/accounts/inactiveAccounts
. * To freeze an account, use theapiture:freeze
link toPOST
to/accounts/frozenAccounts
. * To close an account, use theapiture:close
link toPOST
to/accounts/closedAccounts
.
internalAccountState
strings may have one of the following enumerated values:
Value | Description |
---|---|
pending | Pending: A new account resource has been created but its data has not been verified and the account is not active. |
active | Active: The account has been created and is now active and available for transactions as determined by the account's banking product. |
inactive | Inactive: An account which is marked inactive and not available for new transactions. Financial institution administrators can change inactive accounts back to active. |
frozen | 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 | 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 accounts. |
These enumeration values are further described by the label group named internalAccountState
in the response from the getLabels
operation.
Type: string
Enumerated values: pending
active
inactive
frozen
closed
labelGroup
{
"unknown": {
"label": "Unknown",
"code": "0",
"hidden": true
},
"under1Million": {
"label": "Under $1M",
"code": "1",
"range": "[0,1000000.00)",
"variants": {
"fr": {
"label": "Moins de $1M"
}
}
},
"from1to10Million": {
"label": "$1M to $10M",
"code": "2",
"range": "[1000000.00,10000000.00)",
"variants": {
"fr": {
"label": "$1M \\u00e0 $10M"
}
}
},
"from10to100Million": {
"label": "$10M to $100M",
"code": "3",
"range": "[10000000.00,100000000.00)",
"variants": {
"fr": [
"label $10M \\u00e0 $100M"
]
}
},
"over100Million": {
"label": "Over $100,000,000.00",
"code": "4",
"range": "[100000000.00,]",
"variants": {
"fr": {
"label": "Plus de $10M"
}
}
},
"other": {
"label": "Other",
"code": 254
}
}
Label Group (v1.0.0)
A map that defines labels for the items in a group. This is a map from each item name → a labelItem
object. For example, consider a JSON response that includes a property named revenueEstimate
; the values for revenueEstimate
must be one of the items in the group named estimatedAnnualRevenue
, with options ranging under1Million
, to over100Million
. The item name is used as the selected value in an Apiture representation, such as { ..., "revenueEstimate" : "from10to100Million" , ...}
, and the item with the name from10to100Million
defines the presentation labels for that item, as well as other metadata about that choice: this is the range [10000000.00,100000000.00)
.
This allows the client to let the user select a value from a list, such as the following derived from the labels in the example:
- Unknown
- Under $1M
- $1M to $10M
- $10M to $100M
- $100M or more
Note that the other
item is hidden from the selection list, as that item is marked as hidden
. For items which define numeric ranges, a client may instead let the customer directly enter their estimated annual revenue as a number, such as 4,500,000.00. The client can then match that number to one of ranges in the items and set the revenueEstimate
to the corresponding item's name: { ..., "revenueEstimate" : "from1to10Million", ... }
.
Properties
Name | Description |
---|---|
additionalProperties | labelItem An item in a labelGroup , with a set of variants which contains different localized labels for the item. Each (simpleLabel ) variant defines the presentation text label and optional description for a language. Items may also have a lookup code to map to external syststems, a numeric range, and a hidden boolean to indicate the item is normally hidden in the UI.
|
labelGroups
{
"_profile": "https://api.apiture.com/schemas/common/labelGroups/v1.0.1/profile.json",
"groups": {
"structure": {
"unknown": {
"label": "Unknown",
"code": "0",
"hidden": true
},
"corporation": {
"label": "Corporation",
"code": "1",
"variants": {
"fr": {
"label": "Soci\\u00e9t\\u00e9"
}
}
},
"partnership": {
"label": "Partnership",
"code": "2",
"variants": {
"fr": {
"label": "Partenariat"
}
}
},
"llc": {
"label": "Limited Liability Company",
"code": "2",
"variants": {
"fr": {
"label": "Soci\\u00e9t\\u00e9 \\u00e9 Responsabilit\\u00e9 Limit\\u00e9e"
}
}
},
"nonProfit": {
"label": "Non Profit",
"code": "4",
"variants": {
"fr": {
"label": "Non Lucratif"
}
}
},
"financialInstitution": {
"label": "Financial Institution",
"code": "8",
"variants": {
"fr": {
"label": "Institution financi\\u00e8re"
}
}
},
"soleProprietorship": {
"label": "Sole Proprietorship",
"code": "11",
"variants": {
"fr": {
"label": "Entreprise individuelle"
}
}
},
"other": {
"label": "Other",
"code": "254",
"variants": {
"fr": {
"label": "Autre"
}
}
}
},
"estimatedAnnualRevenue": {
"unknown": {
"label": "Unknown",
"code": "0"
},
"under1Million": {
"label": "Under $1M",
"code": "1",
"range": "[0,1000000.00)"
},
"from1to10Million": {
"label": "$1M to $10M",
"code": "2",
"range": "[1000000.00,10000000.00)"
},
"from10to100Million": {
"label": "$10M to $100M",
"code": "3",
"range": "[10000000.00,100000000.00)"
},
"over100Million": {
"label": "Over $100,000,000.00",
"code": "4",
"range": "[100000000.00,]"
},
"other": {