Account to Account Transfers v0.8.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.
Schedule and manage account to account transfers.
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
Transfers
Banking Transfers
listTransfers
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/transfers \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/transfers 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/transfers',
{
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/transfers',
method: 'get',
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/transfers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/transfers', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/transfers");
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/transfers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of transfers
GET https://api.apiture.com/banking/transfers
Return a paginated collection of transfers. The nextPage_url in the response is a pagination link.
Parameters
Parameter | Description |
---|---|
scheduledOn | dateRange Return only transactions whose scheduledOn date is in this date range. Dates ranges use dates expressed in YYYY-MM-DD RFC 3339 date format. Example date ranges:
pattern: ^\d{4}-\d{2}-\d{2}|([[(](\d{4}-\d{2}-\d{2},(\d{4}-\d{2}-\d{2})?|,\d{4}-\d{2}-\d{2})[)\]])$ |
historical | boolean If true , list only historical (state is processed ) transfers. If false , list only transfers that have not yet finished processing. If omitted, list all transfers. |
start | string The location of the next item in the collection. This is an opaque cursor supplied by the API service. Omit this to start at the beginning of the collection. The client does not define this value; the API services automatically pass the ?start= parameter on the nextPage_url .Default: "" maxLength: 256 |
limit | integer(int32) The maximum number of items to return in this paged response. Default: 100 minimum: 0 maximum: 1000 |
Example responses
200 Response
{
"start": "d1b48af913464aa49fcb07065dcc0616",
"limit": 10,
"nextPage_url": "https://production.api.apiture.com/transfers/transfers?start=6117a4dcefb841cab7316cef1ac8b58c&limit=10",
"items": [
{
"id": "0399abed-fd3d",
"amount": "275.00",
"memo": "Cover check for car repair",
"sourceAccount": {
"id": "bd9b7af2-6f9b",
"label": "Premiere Checking *6789",
"type": "checking",
"location": "internal"
},
"targetAccount": {
"id": "88b1ca3e-d0f3",
"label": "Personal Savings *4567",
"type": "savings",
"location": "internal"
},
"schedule": {
"scheduledOn": "2022-06-28",
"frequency": "once"
}
},
{
"id": "d62c0701-0d74",
"amount": "100.00",
"memo": "cover check for school books",
"sourceAccount": {
"id": "bd9b7af2-6f9b",
"label": "Checking *6789",
"type": "checking",
"location": "internal"
},
"targetAccount": {
"id": "c8396f59-624b",
"label": "Checking *3456",
"type": "checking",
"location": "internal"
},
"schedule": {
"scheduledOn": "2022-06-28",
"frequency": "once"
}
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: transfers |
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. | |
Schema: problemResponse |
createTransfer
Code samples
# You can also use wget
curl -X POST https://api.apiture.com/banking/transfers \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://api.apiture.com/banking/transfers HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"amount": "275.00",
"memo": "Cover check for car repair",
"sourceAccount": {
"id": "bd9b7af2-6f9b",
"location": "internal"
},
"targetAccount": {
"id": "88b1ca3e-d0f3",
"location": "internal"
},
"schedule": {
"scheduledOn": "2022-06-28",
"frequency": "once"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/transfers',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/transfers',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.apiture.com/banking/transfers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.apiture.com/banking/transfers', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/transfers");
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/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.apiture.com/banking/transfers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new transfer
POST https://api.apiture.com/banking/transfers
Create a new transfer within the transfers collection.
Body parameter
{
"amount": "275.00",
"memo": "Cover check for car repair",
"sourceAccount": {
"id": "bd9b7af2-6f9b",
"location": "internal"
},
"targetAccount": {
"id": "88b1ca3e-d0f3",
"location": "internal"
},
"schedule": {
"scheduledOn": "2022-06-28",
"frequency": "once"
}
}
Parameters
Parameter | Description |
---|---|
body | newTransfer (required) The data necessary to create a new transfer. |
Example responses
201 Response
{
"amount": "275.00",
"sourceAccount": {
"id": "bd9b7af2-6f9b",
"label": "Premiere Checking *6789",
"type": "checking",
"location": "internal"
},
"targetAccount": {
"id": "88b1ca3e-d0f3",
"label": "Personal Savings *4567",
"type": "savings",
"location": "internal"
},
"schedule": {
"scheduledOn": "2022-06-28",
"frequency": "once"
},
"processedAt": "2022-06-27T021:00:00.000Z",
"updatedBy": "James Bond",
"id": "0399abed-fd3d",
"memo": "Cover check for car repair"
}
Responses
Status | Description |
---|---|
201 | Created |
Created. | |
Schema: transfer | |
Header | Location string uri-reference |
The URI of the new transfer. |
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 user's permissions do not allow the transfer. 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 |
getTransfer
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/transfers/{transferId} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/transfers/{transferId} 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/transfers/{transferId}',
{
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/transfers/{transferId}',
method: 'get',
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/transfers/{transferId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/transfers/{transferId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/transfers/{transferId}");
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/transfers/{transferId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this transfer
GET https://api.apiture.com/banking/transfers/{transferId}
Return the JSON representation of this transfer resource.
Parameters
Parameter | Description |
---|---|
transferId | resourceId (required) The unique identifier of this transfer. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"amount": "275.00",
"sourceAccount": {
"id": "bd9b7af2-6f9b",
"label": "Premiere Checking *6789",
"type": "checking",
"location": "internal"
},
"targetAccount": {
"id": "88b1ca3e-d0f3",
"label": "Personal Savings *4567",
"type": "savings",
"location": "internal"
},
"schedule": {
"scheduledOn": "2022-06-28",
"frequency": "once"
},
"processedAt": "2022-06-27T021:00:00.000Z",
"updatedBy": "James Bond",
"id": "0399abed-fd3d",
"memo": "Cover check for car repair"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: transfer |
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 transfer resource at the specified {transferId} . | |
Schema: problemResponse |
patchTransfer
Code samples
# You can also use wget
curl -X PATCH https://api.apiture.com/banking/transfers/{transferId} \
-H 'Content-Type: application/merge-patch+json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.apiture.com/banking/transfers/{transferId} HTTP/1.1
Host: api.apiture.com
Content-Type: application/merge-patch+json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"amount": "275.00",
"targetAccount": {
"id": "88b1ca3e-d0f3"
},
"schedule": {
"scheduledOn": "2022-06-28"
}
}';
const headers = {
'Content-Type':'application/merge-patch+json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/transfers/{transferId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/merge-patch+json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/transfers/{transferId}',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/merge-patch+json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.apiture.com/banking/transfers/{transferId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/merge-patch+json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.apiture.com/banking/transfers/{transferId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/transfers/{transferId}");
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/merge-patch+json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.apiture.com/banking/transfers/{transferId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this transfer
PATCH https://api.apiture.com/banking/transfers/{transferId}
Perform a partial update of this transfer as per JSON Merge Patch format and processing rules. Only fields in the request body are updated on the resource; fields which are omitted are not updated.
Body parameter
{
"amount": "275.00",
"targetAccount": {
"id": "88b1ca3e-d0f3"
},
"schedule": {
"scheduledOn": "2022-06-28"
}
}
Parameters
Parameter | Description |
---|---|
body | transferPatch (required) The fields to update within the transfer. |
transferId | resourceId (required) The unique identifier of this transfer. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"amount": "275.00",
"sourceAccount": {
"id": "bd9b7af2-6f9b",
"label": "Premiere Checking *6789",
"type": "checking",
"location": "internal"
},
"targetAccount": {
"id": "88b1ca3e-d0f3",
"label": "Personal Savings *4567",
"type": "savings",
"location": "internal"
},
"schedule": {
"scheduledOn": "2022-06-28",
"frequency": "once"
},
"processedAt": "2022-06-27T021:00:00.000Z",
"updatedBy": "James Bond",
"id": "0399abed-fd3d",
"memo": "Cover check for car repair"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: transfer |
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 transfer resource at the specified {transferId} . | |
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 |
deleteTransfer
Code samples
# You can also use wget
curl -X DELETE https://api.apiture.com/banking/transfers/{transferId} \
-H 'Accept: application/problem+json' \
-H 'Authorization: Bearer {access-token}'
DELETE https://api.apiture.com/banking/transfers/{transferId} HTTP/1.1
Host: api.apiture.com
Accept: application/problem+json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/problem+json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/transfers/{transferId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/problem+json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/transfers/{transferId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/problem+json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://api.apiture.com/banking/transfers/{transferId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/problem+json',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://api.apiture.com/banking/transfers/{transferId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/transfers/{transferId}");
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/problem+json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.apiture.com/banking/transfers/{transferId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this transfer resource
DELETE https://api.apiture.com/banking/transfers/{transferId}
Delete this transfer resource and any resources that are owned by it. Only transfers that have not been processed may be deleted.
Parameters
Parameter | Description |
---|---|
transferId | resourceId (required) The unique identifier of this transfer. This is an opaque string. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
401 Response
{
"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"
}
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The operation succeeded but returned no response body. |
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 transfer resource at the specified {transferId} . | |
Schema: problemResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. This error response may have one of the following
| |
Schema: problemResponse |
Schemas
accountLocation
"internal"
Account Location (v1.0.0)
Indicates where an account is held:
internal
accounts at the current financial institution;external
accounts at another financial institution;outside
accounts non-banking accounts such as brokerage and fund accounts. Account transfers are only allowed betweeninternal
andexternal
accounts. All accounts are considered when calculating total cash balance.
Type: string
enum values: internal
, external
, outside
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. |
dateRange
"2022-05-19"
Date Range (v1.0.0)
A date range, supporting inclusive or exclusive endpoints. Dates ranges use dates expressed in YYYY-MM-DD
RFC 3339 date
format. The value may have the following forms:
YYYY-MM-DD
match the date exactly; equivalent to matching dates in the range[YYYY-MM-DD,YYYY-MM-DD]
[YYYY-MM-DD,YYYY-MM-DD]
between two dates, inclusive of the endpoints(YYYY-MM-DD,YYYY-MM-DD)
between two dates, exclusive of the endpoints[YYYY-MM-DD,]
on or after the date(YYYY-MM-DD,)
after the date[,YYYY-MM-DD]
before or on the date(,YYYY-MM-DD)
before the date
Type: string
pattern: ^\d{4}-\d{2}-\d{2}|([([)]])$
monetaryValue
"3456.78"
Monetary Value (v1.0.0)
The monetary value, supporting only positive amounts. The numeric value is represented as a string so that it can be exact with no loss of precision.
The schema monetaryValue
was added on version 0.4.0
of the API.
Type: string
pattern: ^(0|[1-9][0-9]*).[0-9][0-9]$
newTransfer
{
"amount": "275.00",
"memo": "Cover check for car repair",
"sourceAccount": {
"id": "bd9b7af2-6f9b",
"location": "internal"
},
"targetAccount": {
"id": "88b1ca3e-d0f3",
"location": "internal"
},
"schedule": {
"scheduledOn": "2022-06-28",
"frequency": "once"
}
}
New Transfer (v2.1.1)
Representation used to create a new transfer.
Properties
Name | Description |
---|---|
schedule | object: transferSchedule (required) When the transfer should occur and any recurrence. |
amount | string: monetaryValue (required) The amount of money to transfer between accounts. pattern: ^(0|[1-9][0-9]*)\.[0-9][0-9]$ |
sourceAccount | object: transferAccountReference (required) The source account where the funds are withdrawn. |
destinationAccount | object: transferAccountReference (required) The destination account where the funds are deposited. |
memo | string A customer-defined memo to describe the transfer. maxLength: 80 |
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. |
productType
"savings"
Product Type (v2.0.0)
The type (or category) of bank account.
productType
strings may have one of the following enumerated values:
Value | Description |
---|---|
savings | Savings: Savings Account |
checking | Checking: Checking Account |
cd | CD: Certificate of Deposit Account |
ira | IRA: Individual Retirement Account |
loan | Loan: Loan Account |
creditCard | Credit Card: Credit Card Account |
Type: string
enum values: savings
, checking
, cd
, ira
, loan
, creditCard
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]+$
transfer
{
"amount": "275.00",
"sourceAccount": {
"id": "bd9b7af2-6f9b",
"label": "Premiere Checking *6789",
"type": "checking",
"location": "internal"
},
"targetAccount": {
"id": "88b1ca3e-d0f3",
"label": "Personal Savings *4567",
"type": "savings",
"location": "internal"
},
"schedule": {
"scheduledOn": "2022-06-28",
"frequency": "once"
},
"processedAt": "2022-06-27T021:00:00.000Z",
"updatedBy": "James Bond",
"id": "0399abed-fd3d",
"memo": "Cover check for car repair"
}
Transfer (v2.2.1)
Representation of a transfer resource.
Properties
Name | Description |
---|---|
schedule | object: transferSchedule (required) When the transfer should occur and any recurrence. |
amount | string: monetaryValue (required) The amount of money to transfer between accounts. pattern: ^(0|[1-9][0-9]*)\.[0-9][0-9]$ |
sourceAccount | object: transferAccountReference (required) The source account where the funds are withdrawn. |
destinationAccount | object: transferAccountReference (required) The destination account where the funds are deposited. |
memo | string A customer-defined memo to describe the transfer. maxLength: 80 |
createdAt | string(date-time) The date-time when this resource was created, in RFC 3339 date-time YYYY-MM-DDThh:mm:ss.sssZ format, UTC. This is derived and immutable.read-only |
updatedAt | string(date-time) The date-time when the resource was last updated, in RFC 3339 date-time YYYY-MM-DDThh:mm:ss.sssZ format, UTC. This is derived and immutable.read-only |
id | string: readOnlyResourceId (required) The unique identifier for this transfer resource. This is an immutable opaque string. read-only minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
state | string: transferState (required) The state of this transfer resource. read-only enum values: pendingApproval , scheduled , processing , processed , suspended |
processedAt | string(date-time) The date the transfer was processed. read-only |
updatedBy | string The full name of the banking customer who last updated the transfer. read-only maxLength: 48 |
transferAccountReference
{
"id": "e821ce54-c715",
"label": "Premiere Checking *6789",
"type": "checking",
"location": "internal"
}
Transfer Account Reference (v2.0.0)
A reference to a banking account used within an account to account transfer. This object may be set from an account's account.reference
object.
Properties
Name | Description |
---|---|
id | string: resourceId (required) The unique ID of a banking account. minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
label | string The human-readable label for this account. This is either the nickname (if assigned for the current customer), or the product.label concatenated with the maskedNumber .read-only maxLength: 80 |
type | string: productType The product type of the account. enum values: savings , checking , cd , ira , loan , creditCard |
location | string: accountLocation Indicates where an account is held. enum values: internal , external , outside |
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
transferItem
{
"amount": "275.00",
"sourceAccount": {
"id": "bd9b7af2-6f9b"
},
"targetAccount": {
"id": "88b1ca3e-d0f3",
"label": "Personal Savings *4567",
"type": "savings"
},
"schedule": {
"scheduledOn": "2022-06-28",
"frequency": "once"
},
"processedAt": "2022-06-27T021:00:00.000Z",
"updatedBy": "James Bond"
}
Transfer Item (v2.2.1)
Summary representation of a transfer resource in transfers collections. To fetch the full representation of this transfer, use the getTransfer
operation, passing this item's id
field as the transferId
path parameter.
Properties
Name | Description |
---|---|
schedule | object: transferSchedule (required) When the transfer should occur and any recurrence. |
amount | string: monetaryValue (required) The amount of money to transfer between accounts. pattern: ^(0|[1-9][0-9]*)\.[0-9][0-9]$ |
sourceAccount | object: transferAccountReference (required) The source account where the funds are withdrawn. |
destinationAccount | object: transferAccountReference (required) The destination account where the funds are deposited. |
memo | string A customer-defined memo to describe the transfer. maxLength: 80 |
createdAt | string(date-time) The date-time when this resource was created, in RFC 3339 date-time YYYY-MM-DDThh:mm:ss.sssZ format, UTC. This is derived and immutable.read-only |
updatedAt | string(date-time) The date-time when the resource was last updated, in RFC 3339 date-time YYYY-MM-DDThh:mm:ss.sssZ format, UTC. This is derived and immutable.read-only |
id | string: readOnlyResourceId (required) The unique identifier for this transfer resource. This is an immutable opaque string. read-only minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
state | string: transferState (required) The state of this transfer resource. read-only enum values: pendingApproval , scheduled , processing , processed , suspended |
processedAt | string(date-time) The date the transfer was processed. read-only |
updatedBy | string The full name of the banking customer who last updated the transfer. read-only maxLength: 48 |
transferPatch
{
"amount": "275.00",
"targetAccount": {
"id": "88b1ca3e-d0f3"
},
"schedule": {
"scheduledOn": "2022-06-28"
}
}
Transfer Patch Request (v2.1.1)
Representation used to patch an existing transfer using the JSON Merge Patch format and processing rules.
Properties
Name | Description |
---|---|
schedule | object: transferSchedule When the transfer should occur and any recurrence. |
amount | string: monetaryValue The amount of money to transfer between accounts. pattern: ^(0|[1-9][0-9]*)\.[0-9][0-9]$ |
sourceAccount | object: transferAccountReference The source account where the funds are withdrawn. |
destinationAccount | object: transferAccountReference The destination account where the funds are deposited. |
memo | string A customer-defined memo to describe the transfer. maxLength: 80 |
transferRecurrenceType
"fixed"
Transfer Recurrence Type (v1.0.0)
Describes whether the transfer amount in the transfer varies or is fixed when the transfer recurs. This is ignored if the transfer frequency is once
.
transferRecurrenceType
strings may have one of the following enumerated values:
Value | Description |
---|---|
fixed | Fixed: The transfer amounts are the same each time a transfer recurs |
variable | variable: The transfer amounts vary and must be entered/verified each time a transfer recurs |
Type: string
enum values: fixed
, variable
transferSchedule
{
"scheduledOn": "2022-06-28",
"frequency": "once"
}
Transfer Schedule (v1.1.1)
The scheduled date when the transfer should be completed, the recurrence, if any, and other derived dates based on the scheduled date.
For recurring transfer schedules, endsOn
, count
, and amountLimit
are mutually exclusive.
Properties
Name | Description | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
scheduledOn | string(date) The transfer's target completion date, in YYYY-MM-DD RFC 3339 date format. | ||||||||||||||||||||||||||
recurrenceType | string: transferRecurrenceType Describes whether the transfer amount in the transfer varies or is fixed when the transfer recurs. This is ignored if the transfer frequency is
enum values: fixed , variable | ||||||||||||||||||||||||||
frequency | string: transferFrequency (required) For recurring transfers, the interval at which the money movement recurs.
enum values: once , daily , weekly , biweekly , semimonthly , monthly , monthlyFirstDay , monthlyLastDay , bimonthly , quarterly , semiyearly , yearly | ||||||||||||||||||||||||||
endsOn | string(date) The optional date when the recurring transfer schedule ends, in YYYY-MM-DD RFC 3339 date format. Subsequent recurring transfers may be scheduled up to and including this date, but not after. This property is ignored if frequency is once . | ||||||||||||||||||||||||||
count | integer For recurring schedules ( frequency is not once ), this is the total number of transfers to make, including the first transfer. This property is ignored if frequency is once .Default: 1 minimum: 1 | ||||||||||||||||||||||||||
amountLimit | integer For recurring schedules ( frequency is not once ), this is the total dollar amount limit including the first transfer. No transfers are scheduled if they would exceed this amount. This property is ignored if frequency is once .Default: 1 minimum: 1 |
transferState
"pendingApproval"
Transfer State (v1.0.0)
The state of a transfer resource.
Type: string
enum values: pendingApproval
, scheduled
, processing
, processed
, suspended
transfers
{
"start": "d1b48af913464aa49fcb07065dcc0616",
"limit": 10,
"nextPage_url": "https://production.api.apiture.com/transfers/transfers?start=6117a4dcefb841cab7316cef1ac8b58c&limit=10",
"items": [
{
"id": "0399abed-fd3d",
"amount": "275.00",
"memo": "Cover check for car repair",
"sourceAccount": {
"id": "bd9b7af2-6f9b",
"label": "Premiere Checking *6789",
"type": "checking",
"location": "internal"
},
"targetAccount": {
"id": "88b1ca3e-d0f3",
"label": "Personal Savings *4567",
"type": "savings",
"location": "internal"
},
"schedule": {
"scheduledOn": "2022-06-28",
"frequency": "once"
}
},
{
"id": "d62c0701-0d74",
"amount": "100.00",
"memo": "cover check for school books",
"sourceAccount": {
"id": "bd9b7af2-6f9b",
"label": "Checking *6789",
"type": "checking",
"location": "internal"
},
"targetAccount": {
"id": "c8396f59-624b",
"label": "Checking *3456",
"type": "checking",
"location": "internal"
},
"schedule": {
"scheduledOn": "2022-06-28",
"frequency": "once"
}
}
]
}
Transfer Collection (v2.2.1)
Collection of transfers. The items in the collection are ordered in the items
array. The response object may contain the nextPage_url
pagination link..
Properties
Name | Description |
---|---|
limit | integer(int32) (required) The number of items requested for this page response. The length of the items array may be less that limit .Default: 100 minimum: 0 |
nextPage_url | string(uri-reference) The URL of the next page of resources. If this URL is omitted, there are no more resources in the collection. read-only maxLength: 8000 |
start | string The opaque cursor that specifies the starting location of this page of items. maxLength: 256 |
items | array: [transferItem] (required) An array containing a page of transfer items. |