Institutions v0.7.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Operations related to bank and credit union financial institutions (FIs). This API provides the following features
- Calculating upcoming dates for transfer schedules, factoring in weekends, non-business days, and banking holidays as determined by the institution,
- Provide a list of transfer date restrictions: dates when users should not schedule transfers, based on transfer parameters,
- Look up a financial institution by an FI locator value: either an ABA routing and transit number, an IBAN account number, or a SWIFT/BIC code,
- Fetching Cutoff times for FI money movement requests.
Some of the operations in this API require an institutionId
path parameter. This is the unique alphanumeric code that uniquely identifies a financial institution.
Download OpenAPI Definition (YAML)
Base URLs:
License: Apiture API License
Authentication
- API Key (
apiKey
)- header parameter: API-Key
- API Key based client identification. See details at Secure Access.
- OpenID Connect authentication (
accessToken
)- OpenId Connect (OIDC) authentication/authorization. The client uses the
authorization_endpoint
andtoken_endpoint
to obtain an access token to pass in theAuthorization
header. Those endpoints are available via the OIDC Configuration URL. The actual URL may vary with each financial institution. See details at Secure Access. - OIDC Configuration URL =
https://oidc.apiture.com/oidc/.well-known/oidc-configuration
- OpenId Connect (OIDC) authentication/authorization. The client uses the
Institutions
Banking Institutions
lookUpInstitutionByLocator
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/institutionByLocator?locator=string&locatorType=abaRoutingNumber&countryCode=US \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/institutionByLocator?locator=string&locatorType=abaRoutingNumber&countryCode=US HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/institutionByLocator?locator=string&locatorType=abaRoutingNumber&countryCode=US',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/institutionByLocator',
method: 'get',
data: '?locator=string&locatorType=abaRoutingNumber&countryCode=US',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/institutionByLocator',
params: {
'locator' => 'string',
'locatorType' => '[institutionLocatorType](#schemainstitutionlocatortype)',
'countryCode' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/institutionByLocator', params={
'locator': 'string', 'locatorType': 'abaRoutingNumber', 'countryCode': 'US'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/institutionByLocator?locator=string&locatorType=abaRoutingNumber&countryCode=US");
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"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/institutionByLocator", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Look up institution by routing number, IBAN, or SWIFT/BIC code
GET https://api.apiture.com/banking/institutionByLocator
Look up a financial institution by their country code and either American Bankers Association routing number, by International Bank Account Number (IBAN), or by SWIFT Business Identifier Code (BIC) code. Optionally, include a list of intermediary institutions that may be necessary to complete international wire transfers.
Parameters
Parameter | Description |
---|---|
locator | string (required) The financial institution lookup key (routing number, IBAN, or SWIFT/BIC), as indicated by the locatorType query parameter.maxLength: 36 |
locatorType | institutionLocatorType (required) Indicates what type of value the locator query parameter is.enum values: abaRoutingNumber , swiftBicCode , ibanAccountNumber |
countryCode | string (required) The country code in which to search for institutions. For the US, the locatorType must be abaRoutingNumber . For non-US countries, the locatorType must be swiftBicCode or ibanAccountNumber .minLength: 2 maxLength: 2 |
includeIntermediaryInstitutions | boolean If looking up a beneficiary institution for a wire transfer beneficiary institution, request the response also include a list of intermediary institutions. |
Example responses
200 Response
{
"found": true,
"institution": {
"name": "First Bank of Andalasia",
"address": {
"address1": "239 West Princess Ave.",
"locality": "Andalasia",
"regionCode": "NC",
"countryCode": "US",
"postalCode": "28407"
},
"locator": "503000196",
"locatorType": "abaRoutingNumber"
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: institutionLookupResult |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
Schedules
Schedules
listTransferSchedule
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/institutions/{institutionId}/transferSchedule?startsOn=2022-07-04&direction=debit&frequency=once \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/institutions/{institutionId}/transferSchedule?startsOn=2022-07-04&direction=debit&frequency=once HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/institutions/{institutionId}/transferSchedule?startsOn=2022-07-04&direction=debit&frequency=once',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/institutions/{institutionId}/transferSchedule',
method: 'get',
data: '?startsOn=2022-07-04&direction=debit&frequency=once',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/institutions/{institutionId}/transferSchedule',
params: {
'startsOn' => 'string(date)',
'direction' => '[transferScheduleDirection](#schematransferscheduledirection)',
'frequency' => '[transferFrequency](#schematransferfrequency)'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/institutions/{institutionId}/transferSchedule', params={
'startsOn': '2022-07-04', 'direction': 'debit', 'frequency': 'once'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/institutions/{institutionId}/transferSchedule?startsOn=2022-07-04&direction=debit&frequency=once");
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"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/institutions/{institutionId}/transferSchedule", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return this institution's list of upcoming transfer schedule dates
GET https://api.apiture.com/banking/institutions/{institutionId}/transferSchedule
Return a transfer schedule list for this institution.
Parameters
Parameter | Description |
---|---|
institutionId | institutionId (required) The unique identifier of a financial institution. minLength: 2 maxLength: 9 pattern: ^[A-Z0-9_]{2,8}$ |
startsOn | string(date) (required) The date to use to begin calculations of the transfer schedule in YYYY-MM-DD RFC 3339 date format. |
endsOn | string(date) The date to use to conclude calculations of the transfer schedule in YYYY-MM-DD RFC 3339 date format. |
direction | transferScheduleDirection (required) The direction of the transfer from the institution to the customer used for adjusting transfer dates due to banking holidays. For debit , dates are adjusted to the next business day. For credit , dates are adjusted to the previous business day.enum values: debit , credit , both |
count | integer(int32) The maximum amount of dates to calculate and include in the response. If an end date is provided, the total count may be lower than the requested count. Default: 6 minimum: 1 maximum: 12 |
frequency | transferFrequency (required) The interval at which the money movement recurs. enum values: once , daily , weekly , biweekly , semimonthly , monthly , monthlyFirstDay , monthlyLastDay , bimonthly , quarterly , semiyearly , yearly |
Example responses
200 Response
{
"items": [
{
"scheduledOn": "2022-06-27",
"effectiveOn": "2022-06-27"
},
{
"scheduledOn": "2022-07-04",
"effectiveOn": "2022-07-05"
},
{
"scheduledOn": "2022-07-11",
"effectiveOn": "2022-07-11"
},
{
"scheduledOn": "2022-07-18",
"effectiveOn": "2022-07-18"
},
{
"scheduledOn": "2022-07-25",
"effectiveOn": "2022-07-25"
},
{
"scheduledOn": "2022-08-01",
"effectiveOn": "2022-07-01"
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: transferSchedules |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not found. There is no such resource at the request URL. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. | |
Schema: problemResponse |
getCutoffTimes
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/institutions/{institutionId}/cutoffTimes \
-H 'Accept: application/json' \
-H 'If-None-Match: string' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/institutions/{institutionId}/cutoffTimes HTTP/1.1
Host: api.apiture.com
Accept: application/json
If-None-Match: string
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'If-None-Match':'string',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/institutions/{institutionId}/cutoffTimes',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'If-None-Match':'string',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/institutions/{institutionId}/cutoffTimes',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'If-None-Match' => 'string',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/institutions/{institutionId}/cutoffTimes',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'If-None-Match': 'string',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/institutions/{institutionId}/cutoffTimes', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/institutions/{institutionId}/cutoffTimes");
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"},
"If-None-Match": []string{"string"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/institutions/{institutionId}/cutoffTimes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return the financial institution's cutoff times for products
GET https://api.apiture.com/banking/institutions/{institutionId}/cutoffTimes
Return daily cutoff times for different money movement processes at a financial institution. Money movement requests (account to account transfers, ACH, wire transfers, etc.) must be submitted before the cutoff time in order for the financial institution to begin processing the request that day. Some cutoff time types may have multiple cutoff times per day.
Cutoff times are very slowly changing data. This is a conditional operation when the If-None-Match
header is used. If the client has a getCutoffTimes
response and the ETag
returned from a previous call to this operation, this operation returns a 304 Not Modified when called again if the cutoff times have not changed.
Parameters
Parameter | Description |
---|---|
institutionId | institutionId (required) The unique identifier of a financial institution. minLength: 2 maxLength: 9 pattern: ^[A-Z0-9_]{2,8}$ |
timeZoneId | timeZoneId Identifies the time zone for formatting time values in the response. If omitted, time values are formatting in the local timezone of the financial institution. maxLength: 36 pattern: ^America\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)* |
If-None-Match | string The entity tag that was returned in the ETag response header of a previous call. If the resource's current entity tag value matches this header value, the GET will return 304 (Not Modified) and no response body, else the current resource representation and updated ETag is returned.maxLength: 512 |
Example responses
200 Response
{
"timeZoneId": "America/New_York",
"items": [
{
"type": "ach",
"time": "13:45"
},
{
"type": "ach",
"time": "16:45"
},
{
"type": "sameDayAch",
"time": "16:45"
},
{
"type": "domesticWireTransfer",
"time": "16:45"
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: cutoffTimes | |
Header | ETag string |
The value of this resource's entity tag, to be passed with If-Match and If-None-Match request headers in other conditional API calls for this resource. |
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 request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not found. There is no such resource at the request URL. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. One or more conditions given in the request header fields evaluated to false when tested on the server. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. | |
Schema: problemResponse |
getTransferDateRestrictions
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/institutions/{institutionId}/transferDateRestrictions \
-H 'Accept: application/json' \
-H 'API-Key: API_KEY'
GET https://api.apiture.com/banking/institutions/{institutionId}/transferDateRestrictions HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
fetch('https://api.apiture.com/banking/institutions/{institutionId}/transferDateRestrictions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
$.ajax({
url: 'https://api.apiture.com/banking/institutions/{institutionId}/transferDateRestrictions',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'API-Key' => 'API_KEY'
}
result = RestClient.get 'https://api.apiture.com/banking/institutions/{institutionId}/transferDateRestrictions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'API-Key': 'API_KEY'
}
r = requests.get('https://api.apiture.com/banking/institutions/{institutionId}/transferDateRestrictions', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/institutions/{institutionId}/transferDateRestrictions");
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.apiture.com/banking/institutions/{institutionId}/transferDateRestrictions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return the financial institution's transfer dates restrictions
GET https://api.apiture.com/banking/institutions/{institutionId}/transferDateRestrictions
Return the transfer date restrictions for a date range and transfer parameters. The result is a list of days and dates that the financial institution does not allow scheduling specific types of transfers.
This information provides hints to clients, allowing bank customers to select transfer dates from a calendar picker. However, these dates are not strictly enforced; a transfer can still be scheduled to occur on restricted dates but the financial institution may shift the date when funds are drafted to account for holidays, closures, or to adjust based on the risk level of the funding account.
Parameters
Parameter | Description |
---|---|
institutionId | institutionId (required) The unique identifier of a financial institution. minLength: 2 maxLength: 9 pattern: ^[A-Z0-9_]{2,8}$ |
startsOn | string(date) The start of the range of dates to include in the response, in YYYY-MM-DD RFC 3339 date format. While start dates far in the future are allowed, bank holiday schedules are only available for a small number of years ahead. The default is the current date. |
endsOn | string(date) The end of the range of dates to include in the response. in YYYY-MM-DD RFC 3339 date format. The default is at least one year from the startOn date and is limited to a four year interval. |
type | transferTypeForDateRestrictions Describes the type of transfer. This determines what business rules and adjustments to make to the date restrictions. Note ACH transfers (including CTX and PPD), that Credit and Debit here are relative to the account at the external financial institution.Default: "internal" enum values: internal , ach , achDebit , achCredit , domesticWireTransfer , internationalWireTransfer |
risk | achAccountRisk The primary account's risk level. This determines what business rules and adjustments to make to the date restrictions. This parameter only applies to ACH credit transfers (funds credited to an external account) and is ignored for others. enum values: early , normal , float , sameDay |
Example responses
200 Response
{
"restrictedDates": [
{
"occursOn": "2022-10-01",
"reason": "pastDate"
},
{
"occursOn": "2022-10-02",
"reason": "pastDate"
},
{
"occursOn": "2022-10-03",
"reason": "pastDate"
},
{
"occursOn": "2022-10-04",
"reason": "pastDate"
},
{
"occursOn": "2022-10-05",
"reason": "pastCutoffTime"
},
{
"occursOn": "2022-10-06",
"reason": "riskRestricted"
},
{
"occursOn": "2022-10-07",
"reason": "riskRestricted"
},
{
"occursOn": "2022-10-08",
"reason": "closure",
"debitsOn": "2022-10-07"
},
{
"occursOn": "2022-10-09",
"reason": "closure",
"debitsOn": "2022-10-07"
},
{
"occursOn": "2022-10-10",
"reason": "holiday",
"debitsOn": "2022-10-07"
},
{
"occursOn": "2022-10-15",
"reason": "closure",
"debitsOn": "2022-10-14"
},
{
"occursOn": "2022-10-16",
"reason": "closure",
"debitsOn": "2022-10-14"
},
{
"occursOn": "2022-10-22",
"reason": "closure",
"debitsOn": "2022-10-21"
},
{
"occursOn": "2022-10-23",
"reason": "closure",
"debitsOn": "2022-10-21"
},
{
"occursOn": "2022-10-29",
"reason": "closure",
"debitsOn": "2022-10-28"
},
{
"occursOn": "2022-10-30",
"reason": "closure",
"debitsOn": "2022-10-28"
}
],
"accuracyEndsOn": "2026-12-31"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: transferDateRestrictions |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
404 | Not Found |
Not found. There is no such resource at the request URL. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid. This error response may have one of the following
| |
Schema: problemResponse |
Schemas
achAccountRisk
"early"
ACH Account Risk (v1.0.0)
Describes the risk level of a payment batch's settlement account.
achAccountRisk
strings may have one of the following enumerated values:
Value | Description |
---|---|
early | Early: The account is debited three business days before the ACH transfer's effective date. The account balance is also checked for sufficient funds before the account is debited. A risk limit may apply for commercial accounts with an |
normal | Normal: The account is debited two business days before the ACH transfer's effective date. The account balance is also checked for sufficient funds before the account is debited. A risk limit may apply for commercial accounts with a |
float | Float: The account is debited on the ACH transfer's effective date. The account balance is not checked for sufficient funds before the account is debited. A risk limit applies for commercial accounts with a |
sameDay | Same Day: The account is credited on the ACH transfer's effective day. The account balance is not checked because |
Type: string
enum values: early
, normal
, float
, sameDay
address
{
"address1": "1805 Tiburon Dr.",
"address2": "Building 14, Suite 1500",
"locality": "Wilmington",
"regionName": "North Carolina",
"countryCode": "US",
"postalCode": "28412"
}
Address (v1.1.0)
A postal address that can hold a US address or an international (non-US) postal addresses.
Properties
Name | Description |
---|---|
address1 | string (required) The first line of the postal address. In the US, this typically includes the building number and street name. maxLength: 35 |
address2 | string The second line of the street address. This should only be used if it has a value. Typical values include building numbers, suite numbers, and other identifying information beyond the first line of the postal address. maxLength: 35 |
locality | string (required) The city/town/municipality of the address. maxLength: 20 |
countryCode | string (required) The ISO-3611 alpha-2 value for the country associated with the postal address. minLength: 2 maxLength: 2 |
regionName | string The state, district, or outlying area of the postal address. This is required if countryCode is not US . regionCode and regionName are mutually exclusive.minLength: 2 maxLength: 20 |
regionCode | string The state, district, or outlying area of the postal address. This is required if countryCode is US regionCode and regionName are mutually exclusive.minLength: 2 maxLength: 2 |
postalCode | string (required) The postal code, which varies in format by country. If countryCode is US , this should be a five digit US ZIP code or ten character ZIP+4.minLength: 5 maxLength: 10 |
apiProblem
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/accountNotFound/v1.0.0",
"title": "Account Not Found",
"status": 422,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No account exists at the given account_url",
"instance": "https://production.api.apiture.com/banking/transfers/bb709151-575041fcd617"
}
API Problem (v1.1.0)
API problem or error, as per RFC 7807 application/problem+json.
Properties
Name | Description |
---|---|
type | string(uri-reference) A URI reference (RFC3986) that identifies the problem type. If present, this is the URL of human-readable HTML documentation for the problem type. When this member is not present, its value is assumed to be "about:blank" . |
title | string A short, human-readable summary of the problem type. The title is usually the same for all problem with the same type . |
status | integer(int32) The HTTP status code for this occurrence of the problem. minimum: 100 maximum: 599 |
detail | string A human-readable explanation specific to this occurrence of the problem. |
instance | string(uri-reference) A URI reference that identifies the specific occurrence of the problem. This is the URI of an API resource that the problem is related to, with a unique error correlation ID URI fragment |
id | string: readOnlyResourceId The unique identifier for this problem. This is an immutable opaque string. read-only minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
occurredAt | string(date-time): readOnlyTimestamp The timestamp when the problem occurred, in RFC 3339 date-time YYYY-MM-DDThh:mm:ss.sssZ format, UTC.read-only minLength: 20 maxLength: 30 |
problems | array: [apiProblem] Optional root-causes if there are multiple problems in the request or API call processing. |
attributes | object Additional optional attributes related to the problem. This data conforms to the schema associated with the error type. |
cutoffTime
{
"type": "ach",
"time": "16:45"
}
Cutoff Time (v1.0.0)
A representation of a cutoff time for a money movement process at a financial institution.
Properties
Name | Description | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
type | string: cutoffTimeType (required) Indicates the type of a cutoff time.
enum values: ach , sameDayAch , domesticWireTransfer , internationalWireTransfer , internalTransfer , externalTransfer , billPay | ||||||||||||||||
time | string (required) The cutoff time for a product formatted in RFC 3339 time format: hh:mm . The time is expressed in 24 hour time and is set to the local time zone of the financial institution.pattern: ^(? |
cutoffTimeType
"ach"
Cutoff type Type (v1.0.0)
Indicates the type of a cutoff time.
cutoffTimeType
strings may have one of the following enumerated values:
Value | Description |
---|---|
ach | ACH |
sameDayAch | Same Day ACH |
domesticWireTransfer | Domestic Wire Transfer |
internationalWireTransfer | International Wire Transfer |
internalTransfer | Internal Account Transfer: A transfer between accounts at the same financial institution |
externalTransfer | External Account Transfer: A transfer to or from an account at an external financial institution |
billPay | Bill Pay |
Type: string
enum values: ach
, sameDayAch
, domesticWireTransfer
, internationalWireTransfer
, internalTransfer
, externalTransfer
, billPay
cutoffTimes
{
"timeZoneId": "America/New_York",
"items": [
{
"type": "ach",
"time": "13:45"
},
{
"type": "ach",
"time": "16:45"
},
{
"type": "sameDayAch",
"time": "16:45"
},
{
"type": "domesticWireTransfer",
"time": "16:45"
}
]
}
Cutoff Times (v1.0.0)
A representation of financial institution cutoff times for different money movement processes. A money movement process can have multiple cutoff times. The cutoff times are sorted in ascending chronological order by money movement process.
Properties
Name | Description |
---|---|
timeZoneId | string: timeZoneId (required) The identifier of the time zone for which all of the items[].time are returned in. The client can use this value to localize the items[].time values to the local time zone of the customer, as well as for formatting to localized names, such as EST and EDT .maxLength: 36 pattern: ^America\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)* |
items | array: [cutoffTime] (required) A list of cutoff times for a financial institution. maxLength: 50 |
institutionId
"TIBURON"
Institution ID (v1.0.0)
The unique immutable identifier of a financial institution.
Type: string
minLength: 2
maxLength: 9
pattern: ^[A-Z0-9_]{2,8}$
institutionLocatorType
"abaRoutingNumber"
institution Locator Type (v1.0.0)
Indicates the type of the institution locator
.
institutionLocatorType
strings may have one of the following enumerated values:
Value | Description |
---|---|
abaRoutingNumber | ABA Routing Number: The American Bankers Association routing number of a financial institution |
swiftBicCode | swiftBicCode: The SWIFT Business Identifier Code (BIC) code of a financial institution |
ibanAccountNumber | IBAN: |
Type: string
enum values: abaRoutingNumber
, swiftBicCode
, ibanAccountNumber
institutionLookupResult
{
"found": true,
"institution": {
"name": "First Bank of Andalasia",
"address": {
"address1": "239 West Princess Ave.",
"locality": "Andalasia",
"regionCode": "NC",
"countryCode": "US",
"postalCode": "28407"
},
"locator": "503000196",
"locatorType": "abaRoutingNumber"
}
}
Institution Lookup Result (v1.0.1)
Successful institution lookup result.
Properties
Name | Description |
---|---|
found | boolean (required) true if a financial institution was found matching the requested FI locator, false if none was found. |
institution | object: simpleInstitution The name and other information about the financial institution, if found. |
intermediaryInstitutions | array: [simpleInstitution] Optional intermediary institutions, if requested and if intermediary institutions are required for for international wire transfers to the beneficiary institution. This array is omitted if there none are required. minLength: 1 maxLength: 8 |
problemResponse
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/noSuchAccount/v1.0.0",
"title": "Account Not Found",
"status": 422,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No account exists for the given account reference",
"instance": "https://production.api.apiture.com/banking/transfers/bb709151-575041fcd617"
}
Problem Response (v0.3.0)
API problem or error response, as per RFC 7807 application/problem+json.
Properties
Name | Description |
---|---|
type | string(uri-reference) A URI reference (RFC3986) that identifies the problem type. If present, this is the URL of human-readable HTML documentation for the problem type. When this member is not present, its value is assumed to be "about:blank" . |
title | string A short, human-readable summary of the problem type. The title is usually the same for all problem with the same type . |
status | integer(int32) The HTTP status code for this occurrence of the problem. minimum: 100 maximum: 599 |
detail | string A human-readable explanation specific to this occurrence of the problem. |
instance | string(uri-reference) A URI reference that identifies the specific occurrence of the problem. This is the URI of an API resource that the problem is related to, with a unique error correlation ID URI fragment |
id | string: readOnlyResourceId The unique identifier for this problem. This is an immutable opaque string. read-only minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
occurredAt | string(date-time): readOnlyTimestamp The timestamp when the problem occurred, in RFC 3339 date-time YYYY-MM-DDThh:mm:ss.sssZ format, UTC.read-only minLength: 20 maxLength: 30 |
problems | array: [apiProblem] Optional root-causes if there are multiple problems in the request or API call processing. |
attributes | object Additional optional attributes related to the problem. This data conforms to the schema associated with the error type. |
readOnlyResourceId
"string"
Read-only Resource Identifier (v1.0.0)
The unique, opaque system-assigned identifier for a resource. This case-sensitive ID is also used in URLs as path parameters or in other properties or parameters that reference a resource by ID rather than URL. Resource IDs are immutable.
Type: string
read-only
minLength: 6
maxLength: 48
pattern: ^[-_:.~$a-zA-Z0-9]+$
readOnlyTimestamp
"2021-10-30T19:06:04.250Z"
Read-Only Timestamp (v1.0.0)
A readonly or derived timestamp (an instant in time) formatted in RFC 3339 date-time
UTC format: YYYY-MM-DDThh:mm:ss.sssZ
.
The schema readOnlyTimestamp
was added on version 0.4.0
of the API.
Type: string(date-time)
read-only
minLength: 20
maxLength: 30
resourceId
"string"
Resource Identifier (v1.0.0)
The unique, opaque system identifier for a resource. This case-sensitive ID is also used as path parameters in URLs or in other properties or parameters that reference a resource by ID rather than URL.
Type: string
minLength: 6
maxLength: 48
pattern: ^[-_:.~$a-zA-Z0-9]+$
simpleInstitution
{
"name": "First Bank of Andalasia",
"address": {
"address1": "239 West Princess Ave.",
"locality": "Andalasia",
"regionCode": "NC",
"countryCode": "US",
"postalCode": "28407"
},
"locator": "503000196",
"locatorType": "abaRoutingNumber"
}
Simple Institution (v1.0.1)
A simple representation of a financial institution.
Properties
Name | Description |
---|---|
name | string (required) The financial institution's name. maxLength: 35 |
address | object: address (required) The financial institution's postal mailing address. |
locator | string (required) The American Bankers Association routing number, SWIFT Business Identifier Code (BIC) code, or IBAN account number of the institution. The form of this institution locator string is set with the locatorType property.maxLength: 36 |
locatorType | string: institutionLocatorType (required) Indicates the type of this institution's locator .enum values: abaRoutingNumber , swiftBicCode , ibanAccountNumber |
timeZoneId
"America/New_York"
- (v1.0.0)*
The identifier of a time zone, as described by RFC 7808. This value corresponds with the tzid
value described in RFC 5545 and defined by the IANA Time Zone Database.
Type: string
maxLength: 36
pattern: ^America/[a-zA-Z_]+(?😕[a-zA-Z_]+)*
transferDateRestriction
{
"occursOn": "2022-10-10",
"reason": "holiday",
"debitOn": "2022-10-07"
}
Transfer Date Restriction (v1.0.0)
A date where a transfer restriction occurs, and the reason
it is restricted. If the reason
is holiday
, closure
and the transfer is an ACH transfer, the object also contains either a debitOn
or creditOn
date or both.
Properties
Name | Description |
---|---|
occursOn | string(date) (required) The date that a transfers restriction occurs, is in the ISO 8601 Date format, yyyy-mm-dd . |
reason | string: transferDateRestrictionType (required) Indicates why this date is restricted. enum values: pastDate , pastCutoffTime , riskRestricted , holiday , closure , other |
creditOn | string(date) The date the local financial institution account is credited in RFC 3339 YYYY-MM-DD date format. This is derived from the date based on the risk level. The credit-on date normally falls one business day after the restricted date . This property is only returned if the payment type is achDebit or ach . |
debitOn | string(date) The date the local financial institution account is debited in RFC 3339 YYYY-MM-DD date format. This is derived from the date based on the risk level and the transfer direction (achDebit or achCredit ). The debit-on date normally falls one to three business days before the restricted date . This property is only returned if the payment type is achCredit or ach . |
transferDateRestrictionType
"pastDate"
Transfer Date Restriction Type (v1.0.0)
Indicates why a transfer date is restricted.
transferDateRestrictionType
strings may have one of the following enumerated values:
Value | Description |
---|---|
pastDate | Past Date: The transfer date is in the past |
pastCutoffTime | Past Cutoff Time: Transfers disallowed because the current time is past the financial institutions' cutoff time |
riskRestricted | Risk Restricted: The date is restricted because the risk level requires one or more days for a debit to clear |
holiday | Holiday: |
closure | Closure: Financial institution closure, such as a weekend or other planned closure |
other | Other: Other |
Type: string
enum values: pastDate
, pastCutoffTime
, riskRestricted
, holiday
, closure
, other
transferDateRestrictions
{
"restrictedDates": [
{
"occursOn": "2022-10-01",
"reason": "pastDate"
},
{
"occursOn": "2022-10-02",
"reason": "pastDate"
},
{
"occursOn": "2022-10-03",
"reason": "pastDate"
},
{
"occursOn": "2022-10-04",
"reason": "pastDate"
},
{
"occursOn": "2022-10-05",
"reason": "pastCutoffTime"
},
{
"occursOn": "2022-10-06",
"reason": "riskRestricted"
},
{
"occursOn": "2022-10-07",
"reason": "riskRestricted"
},
{
"occursOn": "2022-10-08",
"reason": "closure",
"debitsOn": "2022-10-07"
},
{
"occursOn": "2022-10-09",
"reason": "closure",
"debitsOn": "2022-10-07"
},
{
"occursOn": "2022-10-10",
"reason": "holiday",
"debitsOn": "2022-10-07"
},
{
"occursOn": "2022-10-15",
"reason": "closure",
"debitsOn": "2022-10-14"
},
{
"occursOn": "2022-10-16",
"reason": "closure",
"debitsOn": "2022-10-14"
},
{
"occursOn": "2022-10-22",
"reason": "closure",
"debitsOn": "2022-10-21"
},
{
"occursOn": "2022-10-23",
"reason": "closure",
"debitsOn": "2022-10-21"
},
{
"occursOn": "2022-10-29",
"reason": "closure",
"debitsOn": "2022-10-28"
},
{
"occursOn": "2022-10-30",
"reason": "closure",
"debitsOn": "2022-10-28"
}
],
"accuracyEndsOn": "2026-12-31"
}
Transfer Date Restrictions (v1.0.0)
A list of the financial institution's transfer date restrictions. This is a list of weekdays and specific dates when the institution cannot perform the requested transfers. The response may include dates prior to requested the start date, as that is useful for populating a calendar that shows the current month and the last few days of the previous month.
Properties
Name | Description |
---|---|
restrictedDates | array: [transferDateRestriction] A list of restricted transfer dates as determined by the requested transfer parameters, holidays, and scheduled closures. This includes dates that correspond to normal day-of-week restrictions as listed in restrictedDays .maxItems: 500 |
accuracyEndsOn | string(date) The service only knows bank holidays for about two to four years in advance. This date is the end of that known holiday schedule, although the requested dates may extend well beyond this date. Any dates in the response beyond this date may omit holidays but may include other restricted dates based on the financial institution's normal scheduled closures such as Saturdays and Sundays. |
transferFrequency
"once"
Transfer Frequency (v1.0.0)
For recurring transfers, the interval at which the money movement recurs.
transferFrequency
strings may have one of the following enumerated values:
Value | Description |
---|---|
once | once: Transfer does not repeat |
daily | daily: Repeat daily on business days |
weekly | weekly: Repeat weekly |
biweekly | biweekly: Repeat every two weeks (26 times a year) |
semimonthly | semimonthly: Repeat twice a month (24 times a year) |
monthly | monthly: Repeat monthly |
monthlyFirstDay | monthlyFirstDay: Repeat on the first business day of the month |
monthlyLastDay | monthlyLastDay: Repeat on the last business day of the month |
bimonthly | bimonthly: Repeat every other month |
quarterly | quarterly: Repeat quarterly (four times a year) |
semiyearly | semiyearly: Repeat every six months (twice a year) |
yearly | yearly: Repeat once every year |
Type: string
enum values: once
, daily
, weekly
, biweekly
, semimonthly
, monthly
, monthlyFirstDay
, monthlyLastDay
, bimonthly
, quarterly
, semiyearly
, yearly
transferScheduleDirection
"debit"
Transfer Schedule Direction (v1.0.0)
Provides the direction in which a transfer flows.
transferScheduleDirection
strings may have one of the following enumerated values:
Value | Description |
---|---|
debit | Debit: Money is transferred from a payer to the financial institution |
credit | Credit: Money is transferred from the financial institution to a payee |
both | Both: Money is transferred both to and from a payee/payer |
Type: string
enum values: debit
, credit
, both
transferScheduleItem
{
"scheduledOn": "2022-07-04",
"effectiveOn": "2022-07-05"
}
Transfer Schedule Item (v1.0.0)
Summary representation of a transfer schedule resource in transfer schedule list.
Properties
Name | Description |
---|---|
scheduledOn | string(date) (required) The scheduled date of the calculated calendar recurrence in YYYY-MM-DD RFC 3339 date format. |
effectiveOn | string(date) (required) The effective date of the recurrence in YYYY-MM-DD RFC 3339 date format. When the effective date differs from the scheduled date, it is due to a banking holiday, weekend, or other non-business day. The date is adjusted to before the scheduled date when the transfer direction is credit and adjusted to after the scheduled date when the transfer direction is debit . |
transferSchedules
{
"items": [
{
"scheduledOn": "2022-06-27",
"effectiveOn": "2022-06-27"
},
{
"scheduledOn": "2022-07-04",
"effectiveOn": "2022-07-05"
},
{
"scheduledOn": "2022-07-11",
"effectiveOn": "2022-07-11"
},
{
"scheduledOn": "2022-07-18",
"effectiveOn": "2022-07-18"
},
{
"scheduledOn": "2022-07-25",
"effectiveOn": "2022-07-25"
},
{
"scheduledOn": "2022-08-01",
"effectiveOn": "2022-07-01"
}
]
}
Transfer Schedule List (v1.0.0)
List of transfer methods. The items in the list are ordered in the items
array.
Properties
Name | Description |
---|---|
items | array: [transferScheduleItem] (required) An array containing upcoming transfer schedule items. |
transferTypeForDateRestrictions
"internal"
Transfer Restriction Transfer Type (v1.0.0)
Indicates the type of transfer. This determines what business rules and adjustments to make to the date restrictions.
transferTypeForDateRestrictions
strings may have one of the following enumerated values:
Value | Description |
---|---|
internal | Internal: Internal account to internal account transfer |
ach | ACH: An ACH transfer that includes both debit and credit transfers |
achCredit | ACH Credit: An ACH transfer debiting an internal account and crediting an external account |
achDebit | ACH Debit: An ACH transfer debiting an external account and crediting an internal account |
domesticWireTransfer | Domestic Wire Transfer |
internationalWireTransfer | International Wire Transfer |
Type: string
Default: "internal"
enum values: internal
, ach
, achDebit
, achCredit
, domesticWireTransfer
, internationalWireTransfer
wireTransferInstitution
{
"name": "First Bank of Andalasia",
"address": {
"address1": "239 West Princess Ave.",
"locality": "Andalasia",
"regionCode": "NC",
"countryCode": "US",
"postalCode": "28407"
},
"locator": "503000196",
"locatorType": "abaRoutingNumber"
}
Wire Transfer Institution (v1.0.0)
A representation of a financial institution used for wire transfers.
Properties
Name | Description |
---|---|
name | string (required) The financial institution's name. maxLength: 35 |
address | object: address (required) The financial institution's postal mailing address. |
locator | string (required) The American Bankers Association routing number, SWIFT Business Identifier Code (BIC) code, or IBAN account number of the institution. The form of this institution locator string is set with the locatorType property.maxLength: 36 |
locatorType | string: institutionLocatorType (required) Indicates the type of this institution's locator .enum values: abaRoutingNumber , swiftBicCode , ibanAccountNumber |
localClearingCode | string([a-zA-Z0-9]{3,12}) The clearing code used to identify the financial institution for select countries. minLength: 3 maxLength: 12 |