Audit v0.11.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
The Audit API provides read-only access to Apiture system audit records, which track user online banking activity. This API is available to administrators only, not bank customers. Only activity processed by Apiture APIs and services is available through this API.
This API manages two primary resources: audit records of user or other activity, and audit record types which are metadata that describe the data in the audit records.
Each audit record contains the type
of the record, the user who performed the activity, the URI of related resources, a time stamp, and a data
object containing type
-specific properties of the activity; see the record
schema below. Administrator users of this API can filter audit records using most of these values.
The content of each audit record is defined with an audit record type which describes the content of all audit records of that type. The audit record type contains its name, label, description and a JSON schema object which defines the data types and descriptions of the data
property of an audit record. See the recordType
schema below.
There is a many-to-one relationship between audit records and audit record types.
Audit record queries
The getAuditRecords
operation supports querying by the fields common to all audit records: ?type=
, ?category=
, ?user=
, ?host=
, ?uri=
, (To filter by date/time, see Time-bound queries below.)
Audit records by user
Each audit record contains the userId
and coreCustomerId
of the user who performed the auditable action, if it is known. The userId
is the unique _id
of the user's resource from the Users service. This indicates who performed the audited activity. In some cases, administrators at the financial institution can perform some actions on behalf of users from an administrative application. If this occurs, the audit record's operatorId
will be the ID of the operator.
The user ID/customer ID is not always known. For example, if an administrator reverses a transaction in the core servicing application and that reversal flows into Apiture resources, Apiture may not be able to attribute the activity to a user, but will still create an audit record for the activity. The userId
has the value <system>
for audit records for such operations. Please consult the audit records in the banking core or servicing application to track such activity.
Time-bound queries
The audit record views also support time-bounded queries. By default, the getAuditRecords
and getAuditRecordsByType
operations return records for the current day (based on the date component of the record's occurredAt
field), in reverse chronological order.
These date-time bounds can be passed explicitly to override the defaults:
- Pass the
startAt
andendAt
to find any records which overlap that date range. For example, to fetch between September 10 and September 25, 2020, request?startAt=2020-09-10&endAt=2020-09-25
. - Pass the
startAt
to find audit records beginning at that date or date-time. The optionalperiod
determines how many minutes, hours, or days of data up to and including theendAt
to include in the paginated response. For example, to fetch for the first 14 days of September 2020, request?startAt=2020-09-01&period=P14D
. - Pass the
endAt
to return audit records which occurred up to specified date or date time. The optionalperiod
determines how many minutes, hours, or days of data on or after theendAt
date to include in the paginated response. For example, to fetch for the last six days of September 2020, request?endAt=2020-09-30&period=P6D
.
The default period is P1D
. To fetch records for the last six days, request ?period=P6D
; use ?period=PT1H
to select just the past one hour of data. This result list of records is sorted in reverse chronological order unless startAt
is specified. (The default endAt
is the current instant.) period
is not allowed if both startAt
and endAt
are passed.
To find audit records from September 2020, specify a startAt
of September 1 and a period
of P1M
(one month):
text GET /audit/recordsByType?type=transferScheduled&startAt=2020-09-01&period=P1M
startAt
and endAt
may be either specific date or date-time values in RFC 3339 format (YYYY-MM-DD
or YYYY-MM-DDThh:mm:ss.sssZ
). Caution: The occurredAt
time is in UTC time zone; adjust start and end times to account for local time zones.
Audit record pagination
The audit records support cursor-based pagination rather than index-based pagination. The start
property in the collection and the ?start=
query parameter in the next
link are opaque strings which represent the pagination cursor. The audit record collection uses cursor based pagination because new audit records are likely to be added to the collection while a client is paging, and using index paged pagination is likely to result in visiting the same records again. (For example, the first GET
returns records 0 to 1000. Before the next GET, 210 new audit records may be added, so an index-based pagination request for the next 1,000 items, GET /audit/records?start=1000
, will start at record 1,000 instead of the desired 1,210, and the result would contain 210 items that were also in the first page.)
Often, pagination is bounded by the date-time query parameters as described above. For example, for ?startAt=2020-09-01&period=P1M
, the response will only page through audit records for the one month period starting 2020-09-01. If the collection response's _links
object includes the apiture:skip
link, that link will skip to the next or previous time period, such as ?startAt=2020-10-01&period=P1M
. When the page parameters use ?startAt=
, the apiture:skip
link will skip by adding the period to the start date-time. When the page parameters use ?endAt=
, the apiture:skip
link will skip by subtracting the period from the end date-time. Skip link does not appear if the query includes both ?startAt=
and ?endAt=
query parameters.
Download OpenAPI Definition (YAML)
Base URLs:
Authentication
- API Key (
apiKey
)- header parameter: API-Key
- API Key based authentication. Each client application must pass its private, unique API key, allocated in the developer portal, via the
API-Key: {api-key}
request header.
- OAuth2 authentication (
accessToken
)- OAuth2 client access token authentication. The client authenticates against the server at
authorizationUrl
, passing the client's privateclientId
(and optionalclientSecret
) as part of this flow. The client obtains an access token from the server attokenUrl
. It then passes the received access token via theAuthorization: Bearer {access-token}
header in subsequent API calls. The authorization process also returns a refresh token which the client should use to renew the access token before it expires. - Flow:
authorizationCode
- Authorization URL = https://auth.devbank.apiture.com/auth/oauth2/authorize
- Token URL = https://api.devbank.apiture.com/auth/oauth2/token
- OAuth2 client access token authentication. The client authenticates against the server at
Scope | Scope Description |
---|---|
admin/read |
Read access to audit records |
Audit Record
Audit Record
getAuditRecords
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/audit/records \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/audit/records HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/audit/records',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/audit/records',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/audit/records',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/audit/records', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/audit/records");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/audit/records", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return audit records
GET https://api.devbank.apiture.com/audit/records
Return a paginated sortable collection of audit records which satisfy the filtering query parameters. By default, this returns records for the past 24 hours, in reverse chronological order. This result list of records is sorted in reverse chronological order unless ?startAt=
is specified. The links in the response include pagination links as described in the records
schema.
Parameters
Parameter | Description |
---|---|
type in: query | string Restrict audit records to those matching this record type. Multiple types may be specified, separated by | . |
category in: query | string Restrict audit records to those matching this record type category. Multiple categories may be specified, separated by | . |
user in: query | string Restrict audit records to those where either the userId field match this value. |
host in: query | string Restrict audit records to those matching this client host IP address. |
startAt in: query | string(date) The start date or date-time of the time-bounded query. May be combined with endAt or period but not both. This may be either a date or date-time in RFC 3339 UTC format (YYYY-MM-DD or YYYY-MM-DDThh:mm:ss.sssZ ). If only a date is passed, the time of day is 00:00:00 . The default startAt date-time is 24 hours before the current instant. Using startAt will change the sort order from reverse to forward chronological order.format: date |
endAt in: query | string(date) The end date of the time-bounded query. May be combined with startAt or period but not both. This may be either a date or date-time in RFC 3339 UTC format (YYYY-MM-DD or YYYY-MM-DDThh:mm:ss.sssZ ). If only a date is passed, the time of day is 24:00:00 . The default endAt is the current instant.format: date |
period in: query | string(period) The time period for the date-time range, looking backwards from endAt (or today, if endAt is omitted), or forward from startAt . The period is a ISO 8601 duration. For example, to list audit records for the last 6 days, use ?period=P6D . The default is P1D indicating one day of data. Examples of period values: P1M (one month), P2W (two weeks), P5D (five days), PT12H (twelve hours), PT30M (30 minutes) and PT30S (30 seconds).format: period default: "P1D" |
uri in: query | string(uri) Restrict audit records to where primaryUri or secondaryUri match this URI parameter value. This string is a relative URI only, without the absolute https://host URL prefix. Example: ?uri=/accounts/account/b6512168-20fc-4a8c-80dd-8670f76ea356 .format: uri |
start in: query | string Represents the first record of the page of results. This is supplied by the service when paginating items: the next link includes a ?start= query parameter which refers to beginning of the next page of items. |
limit in: query | integer(int32) The maximum number of audit record representations to return in this page. format: int32 default: 100 |
sortBy in: query | string Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2 .This collection may be sorted by the following properties: • occurredAt • userId • type . |
Example responses
200 Response
{
"_profile": "https://production.api.apiture.com/schemas/audit/records/v2.0.0/profile.json",
"_links": {
"self": {
"href": "/audit/records?category=transfers"
},
"next": {
"href": "/audit/records?category=transfers&start=eyJjdXJzb3IiOiAiNDIwMCJ9&limit=1000"
},
"collection": {
"href": "/audit/records"
}
},
"start": "eyJjdXJzb3IiOiAiMzIwMCJ9",
"limit": 1000,
"name": "records",
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://production.api.apiture.com/schemas/audit/record/v2.0.0/profile.json",
"type": "transferScheduled",
"occurredAt": "2019-09-13T05:03:50.375Z",
"userId": "4f3ec1da-d4f3-4dbe-9ed6-ab02eed9de64",
"username": "lucy.wellphunded",
"coreCustomerId": "32bc88e4003d061f4fdb",
"host": "13.226.38.34",
"primaryUri": "https://production.api.apiture.com/transfers/scheduledTransfer/a727ff2a-08ea-42ce-b8dc-edea60646819",
"data": {
"sourceAccount": "9876543210",
"sourceRoutingNumber": "021000021",
"targetAccount": "9876543219",
"targetRoutingNumber": "021000021",
"amount": "1500.00",
"currency": "USD",
"start": "2019-10-15"
},
"links": {
"self": {
"href": "/audit/records/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:type": {
"href": "/audit/types/transferScheduled"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: records |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
getAuditRecord
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/audit/records/{recordId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/audit/records/{recordId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/audit/records/{recordId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/audit/records/{recordId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/audit/records/{recordId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/audit/records/{recordId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/audit/records/{recordId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/audit/records/{recordId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this audit record
GET https://api.devbank.apiture.com/audit/records/{recordId}
Return a HAL representation of this audit record resource.
Parameters
Parameter | Description |
---|---|
recordId in: path | string (required) The unique identifier of this audit record. This is an opaque string. |
If-None-Match in: header | string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Example responses
200 Response
{
"_profile": "https://production.api.apiture.com/schemas/audit/record/v2.0.0/profile.json",
"_links": {
"self": {
"href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
}
},
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"type": "transferScheduled",
"occurredAt": "2019-09-13T05:03:50.375Z",
"userId": "4f3ec1da-d4f3-4dbe-9ed6-ab02eed9de64",
"username": "lucy.wellphunded",
"coreCustomerId": "32bc88e4003d061f4fdb",
"host": "13.226.38.34",
"primaryUri": "https://production.api.apiture.com/transfers/scheduledTransfer/a727ff2a-08ea-42ce-b8dc-edea60646819",
"data": {
"sourceAccount": "9876543210",
"sourceRoutingNumber": "021000021",
"targetAccount": "9876543219",
"targetRoutingNumber": "021000021",
"amount": "1500.00",
"currency": "USD",
"start": "2019-10-15"
},
"links": {
"self": {
"href": "/audit/records/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:type": {
"href": "/audit/types/transferScheduled"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: record | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this audit record resource. |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such audit record resource at the specified {recordId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Audit Record Type
Audit Record Types
getAuditRecordTypes
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/audit/types \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/audit/types HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/audit/types',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/audit/types',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/audit/types',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/audit/types', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/audit/types");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/audit/types", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of audit record types
GET https://api.devbank.apiture.com/audit/types
Return a collection of audit record types.
Example responses
200 Response
{
"_profile": "https://production.api.apiture.com/schemas/audit/recordTypes/v1.0.2/profile.json",
"_links": {
"self": {
"href": "/audit/recordTypes?start=10&limit=10"
},
"collection": {
"href": "/audit/recordTypes"
}
},
"start": 0,
"count": 67,
"name": "recordTypes",
"_embedded": {
"items": [
{
"name": "transferScheduled",
"_profile": "https://production.api.apiture.com/schemas/audit/recordType/v1.0.2/profile.json",
"label": "Transfer Scheduled",
"category": "transfers",
"categoryLabel": "Transfers",
"version": "1.0.0",
"description": "The user scheduled a one-time or recurring transfer.",
"_links": {
"self": {
"href": "/audit/recordTypes/transferScheduled"
}
},
"schema": {
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "https://production.api.apiture.com/schemas/audit/transferScheduled/v1.0.0/schema.json",
"x-apiture-name": "transferScheduled",
"x-apiture-category": "transfers",
"x-apiture-categoryLabel": "Transfers",
"x-apiture-primaryUri": "The transfer resource",
"x-apiture-secondaryUri": "The source account",
"type": "object",
"title": "Transfer Scheduled",
"description": "The user scheduled a one-time or recurring transfer.",
"required": [
"sourceAccountNumber",
"sourceRoutingNumber",
"targetAccountNumber",
"targetRoutingNumber",
"amount",
"currency",
"start"
],
"properties": {
"sourceAccountNumber": {
"description": "The account number where funds are withdrawn.",
"type": "string"
},
"sourceRoutingNumber": {
"description": "The routing number of the financial institution where funds are withdrawn.",
"type": "string"
},
"targetAccountNumber": {
"description": "The account number where funds are deposited.",
"type": "string"
},
"targetRoutingNumber": {
"description": "The routing number of the financial institution where funds are deposited.",
"type": "string"
},
"amount": {
"description": "The amount that was scheduled to transfer.",
"type": "string"
},
"currency": {
"description": "The [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) for this monetary value. This is always upper case ASCII.",
"type": "string",
"minLength": 3,
"maxLength": 3
},
"start": {
"description": "When the transfer occurs, or when a recurring transfer begins.\n",
"type": "string",
"example": "2018-06-10"
},
"every": {
"description": "For recurring transfers, how often the transfer recurs.",
"type": "string",
"example": "P1M"
},
"count": {
"description": "For a recurring transfer, this is the number of transfers which have been processed. It is a derived value and ignored on updates.",
"type": "integer",
"example": 5
},
"first": {
"description": "If `true`, future transfers in the series should be executed on the _first_ processing day of the month.",
"type": "boolean",
"example": true
},
"last": {
"description": "If `true`, future transfers in the series should be executed on the _last_ processing day of the month.",
"type": "boolean",
"example": false
},
"maximumCount": {
"description": "The maximum number of transfers to perform for a recurring transfer.",
"type": "integer",
"example": 10
},
"end": {
"description": "Do not schedule transfers beyond this date.",
"type": "string",
"example": "2018-08-01"
}
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: recordTypes |
getAuditRecordType
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/audit/types/{recordTypeId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/audit/types/{recordTypeId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/audit/types/{recordTypeId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/audit/types/{recordTypeId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/audit/types/{recordTypeId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/audit/types/{recordTypeId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/audit/types/{recordTypeId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/audit/types/{recordTypeId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this audit record type
GET https://api.devbank.apiture.com/audit/types/{recordTypeId}
Return a HAL representation of this audit record type resource.
Parameters
Parameter | Description |
---|---|
recordTypeId in: path | string (required) The unique identifier of this audit record type. This is an opaque string. |
If-None-Match in: header | string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Example responses
200 Response
{
"_profile": "https://production.api.apiture.com/schemas/audit/recordType/v1.0.2/profile.json",
"_links": {
"self": {
"href": "/audit/recordTypes/transferScheduled"
}
},
"name": "transferScheduled",
"label": "Transfer Scheduled",
"category": "transfers",
"categoryLabel": "Transfers",
"version": "1.0.0",
"description": "The user scheduled a one-time or recurring transfer.",
"schema": {
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "https://production.api.apiture.com/schemas/audit/transferScheduled/v1.0.0/schema.json",
"x-apiture-name": "transferScheduled",
"x-apiture-category": "transfers",
"x-apiture-categoryLabel": "Transfers",
"x-apiture-primaryUri": "The transfer resource",
"x-apiture-secondaryUri": "The source account",
"type": "object",
"title": "Transfer Scheduled",
"description": "The user scheduled a one-time or recurring transfer.",
"required": [
"sourceAccountNumber",
"sourceRoutingNumber",
"targetAccountNumber",
"targetRoutingNumber",
"amount",
"currency",
"start"
],
"properties": {
"sourceAccountNumber": {
"description": "The account number where funds are withdrawn.",
"type": "string"
},
"sourceRoutingNumber": {
"description": "The routing number of the financial institution where funds are withdrawn.",
"type": "string"
},
"targetAccountNumber": {
"description": "The account number where funds are deposited.",
"type": "string"
},
"targetRoutingNumber": {
"description": "The routing number of the financial institution where funds are deposited.",
"type": "string"
},
"amount": {
"description": "The amount that was scheduled to transfer.",
"type": "string"
},
"currency": {
"description": "The [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) for this monetary value. This is always upper case ASCII.",
"type": "string",
"minLength": 3,
"maxLength": 3
},
"start": {
"description": "When the transfer occurs, or when a recurring transfer begins.\n",
"type": "string",
"example": "2018-06-10"
},
"every": {
"description": "For recurring transfers, how often the transfer recurs.",
"type": "string",
"example": "P1M"
},
"count": {
"description": "For a recurring transfer, this is the number of transfers which have been processed. It is a derived value and ignored on updates.",
"type": "integer",
"example": 5
},
"first": {
"description": "If `true`, future transfers in the series should be executed on the _first_ processing day of the month.",
"type": "boolean",
"example": true
},
"last": {
"description": "If `true`, future transfers in the series should be executed on the _last_ processing day of the month.",
"type": "boolean",
"example": false
},
"maximumCount": {
"description": "The maximum number of transfers to perform for a recurring transfer.",
"type": "integer",
"example": 10
},
"end": {
"description": "Do not schedule transfers beyond this date.",
"type": "string",
"example": "2018-08-01"
}
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: recordType | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this audit record type resource. |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such audit record type resource at the specified {recordTypeId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
API
Endpoints which describe this API.
getApi
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/audit/ \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY'
GET https://api.devbank.apiture.com/audit/ HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
fetch('https://api.devbank.apiture.com/audit/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
$.ajax({
url: 'https://api.devbank.apiture.com/audit/',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY'
}
result = RestClient.get 'https://api.devbank.apiture.com/audit/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY'
}
r = requests.get('https://api.devbank.apiture.com/audit/', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/audit/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/audit/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Top-level resources and operations in this API
GET https://api.devbank.apiture.com/audit/
Return links to the top-level resources and operations in this API.
Example responses
200 Response
{
"_profile": "https://production.api.apiture.com/schemas/common/root/v2.1.1/profile.json",
"_links": {
"self": {
"href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
}
},
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0"
}
Responses
getApiDoc
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/audit/apiDoc \
-H 'Accept: application/json' \
-H 'API-Key: API_KEY'
GET https://api.devbank.apiture.com/audit/apiDoc HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
fetch('https://api.devbank.apiture.com/audit/apiDoc',
{
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.devbank.apiture.com/audit/apiDoc',
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.devbank.apiture.com/audit/apiDoc',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'API-Key': 'API_KEY'
}
r = requests.get('https://api.devbank.apiture.com/audit/apiDoc', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/audit/apiDoc");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/audit/apiDoc", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return API definition document
GET https://api.devbank.apiture.com/audit/apiDoc
Return the OpenAPI document that describes this API.
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: Inline |
Response Schema
Schemas
abstractRequest
{
"_profile": "https://production.api.apiture.com/schemas/common/abstractRequest/v2.0.0/profile.json",
"_links": {}
}
Abstract Request (v2.0.0)
An abstract schema used to define other request-only schemas. This is a HAL resource representation, minus the _error
defined in abstractResource
.
This schema was resolved from common/abstractRequest
.
Properties
Name | Description |
---|---|
Abstract Request (v2.0.0) | An abstract schema used to define other request-only schemas. This is a HAL resource representation, minus the _error defined in abstractResource . This schema was resolved from |
_links | An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. This schema was resolved from |
_embedded | An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | The URI of a resource profile which describes the representation. read-only format: uri |
abstractResource
{
"_profile": "https://production.api.apiture.com/schemas/common/abstractResource/v2.1.0/profile.json",
"_links": {
"self": {
"href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
}
}
}
Abstract Resource (v2.1.0)
An abstract schema used to define other schemas for request and response bodies. This is a HAL resource representation. This model contains hypermedia _links
, and either optional domain object data with _profile
and optional _embedded
objects, or an _error
object. In responses, if the operation was successful, this object will not include the _error
, but if the operation was a 4xx or 5xx error, this object will not include _embedded
or any data fields, only _error
and optionally _links
.
This schema was resolved from common/abstractResource
.
Properties
Name | Description |
---|---|
Abstract Resource (v2.1.0) | An abstract schema used to define other schemas for request and response bodies. This is a HAL resource representation. This model contains hypermedia _links , and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error , but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links . This schema was resolved from |
_links | An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. This schema was resolved from |
_embedded | An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | The URI of a resource profile which describes the representation. read-only format: uri |
_error | An object which describes an error. This value is omitted if the operation succeeded without error. read-only |
attributes
{}
Attributes (v2.1.0)
An optional map of name/value pairs which contains additional dynamic data about the resource.
This schema was resolved from common/attributes
.
Properties
Name | Description |
---|---|
Attributes (v2.1.0) | An optional map of name/value pairs which contains additional dynamic data about the resource. This schema was resolved from |
collection
{
"_profile": "https://production.api.apiture.com/schemas/common/abstractResource/v2.1.0/profile.json",
"_links": {
"self": {
"href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
}
}
}
Collection (v2.1.1)
A collection of resources. This is an abstract model schema which is extended to define specific resource collections.
This schema was resolved from common/collection
.
Properties
Name | Description |
---|---|
Collection (v2.1.1) | A collection of resources. This is an abstract model schema which is extended to define specific resource collections. This schema was resolved from |
_links | An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. This schema was resolved from |
_embedded | An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | The URI of a resource profile which describes the representation. read-only format: uri |
_error | An object which describes an error. This value is omitted if the operation succeeded without error. read-only |
count | The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | The start index of this page of items. |
limit | The maximum number of items per page. |
name | The name of the collection. |
cursorPagedCollection
{
"_profile": "https://production.api.apiture.com/schemas/common/abstractResource/v2.1.0/profile.json",
"_links": {
"self": {
"href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
}
}
}
Cursor Paged Collection (v2.1.1)
A collection of resources, or a page from a larger collection. This is an abstract model schema which is extended to define specific resource collections. Pages are referenced using an opaque string starting point named start
. The _links
in the collection may contain pagination links:
- the
next
link returns the next page of items. If there is nonext
link, the collection has been exhausted. - the
first
link returns to the beginning of the filtered/sorted collection. - the
collection
link returns to the beginning of the default collection with no explicit filter or sort criteria.
Cursor paged collections can only paginate forwards contiguously (without skipping items or pages), or reset to the beginning of the collection. This pagination works for collections which are likely to change during pagination, such as adding data to the beginning of the collection's natural sort order. Examples include transactions or audit records.
This schema was resolved from common/cursorPagedCollection
.
Properties
Name | Description |
---|---|
Cursor Paged Collection (v2.1.1) | A collection of resources, or a page from a larger collection. This is an abstract model schema which is extended to define specific resource collections. Pages are referenced using an opaque string starting point named start . The _links in the collection may contain pagination links:
Cursor paged collections can only paginate forwards contiguously (without skipping items or pages), or reset to the beginning of the collection. This pagination works for collections which are likely to change during pagination, such as adding data to the beginning of the collection's natural sort order. Examples include transactions or audit records. This schema was resolved from |
_links | An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. This schema was resolved from |
_embedded | An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | The URI of a resource profile which describes the representation. read-only format: uri |
_error | An object which describes an error. This value is omitted if the operation succeeded without error. read-only |
start | An opaque marker representing the position of the current page in this resource collection. The service will use the start and limit to compute the ?start= query parameter for the next page when it provides the next link in the collection's _links . |
limit | The maximum number of items per page. |
name | A name for the items in collection. |
error
{
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
Error (v2.1.0)
Describes an error in an API request or in a service called via the API.
This schema was resolved from common/error
.
Properties
Name | Description |
---|---|
Error (v2.1.0) | Describes an error in an API request or in a service called via the API. This schema was resolved from |
message | (required) A localized message string describing the error condition. |
_id | A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string. read-only |
statusCode | The HTTP status code associate with this error. minimum: 100 maximum: 599 |
type | An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode . For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet . |
occurredAt | An RFC 3339 UTC time stamp indicating when the error occurred. format: date-time |
attributes | Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type .Additional Properties: true |
remediation | An optional localized string which provides hints for how the user or client can resolve the error. |
errors | array: An optional array of nested error objects. This property is not always present. items: object |
errorResponse
{
"_profile": "https://production.api.apiture.com/schemas/common/errorResponse/v2.1.1/profile.json",
"_links": {
"self": {
"href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
}
},
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "Description of the error will appear here.",
"statusCode": 422,
"type": "specificErrorType",
"attributes": {
"value": "Optional attribute describing the error"
},
"remediation": "Optional instructions to remediate the error may appear here.",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://production.api.apiture.com/errors/specificErrorType"
}
},
"_embedded": {
"errors": []
}
}
}
Error Response (v2.1.1)
Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error
object contains the error details.
This schema was resolved from common/errorResponse
.
Properties
Name | Description |
---|---|
Error Response (v2.1.1) | Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error object contains the error details. This schema was resolved from |
_links | An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. This schema was resolved from |
_embedded | An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | The URI of a resource profile which describes the representation. read-only format: uri |
_error | An object which describes an error. This value is omitted if the operation succeeded without error. read-only |
link
{
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
}
Link (v1.0.0)
Describes a hypermedia link within a _links
object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name
or hreflang
properties of HAL. Apiture links may include a method
property.
This schema was resolved from common/link
.
Properties
Name | Description |
---|---|
Link (v1.0.0) | Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property. This schema was resolved from |
href | (required) The URI or URI template for the resource/operation this link refers to. format: uri |
type | The media type for the resource. |
templated | If true, the link's href is a URI template. |
title | An optional human-readable localized title for the link. |
deprecation | If present, the containing link is deprecated and the value is a URI which provides human-readable text information about the deprecation. format: uri |
profile | The URI of a profile document, a JSON document which describes the target resource/operation. format: uri |
links
{
"property1": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
},
"property2": {
"href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Application"
}
}
Links (v1.0.0)
An optional map of links, mapping each link relation to a link object. This model defines the _links
object of HAL representations.
This schema was resolved from common/links
.
Properties
Name | Description |
---|---|
Links (v1.0.0) | An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. This schema was resolved from |
Link (v1.0.0) | Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property. This schema was resolved from |
record
{
"_profile": "https://production.api.apiture.com/schemas/audit/record/v2.0.0/profile.json",
"_links": {
"self": {
"href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
}
},
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"type": "transferScheduled",
"occurredAt": "2019-09-13T05:03:50.375Z",
"userId": "4f3ec1da-d4f3-4dbe-9ed6-ab02eed9de64",
"username": "lucy.wellphunded",
"coreCustomerId": "32bc88e4003d061f4fdb",
"host": "13.226.38.34",
"primaryUri": "https://production.api.apiture.com/transfers/scheduledTransfer/a727ff2a-08ea-42ce-b8dc-edea60646819",
"data": {
"sourceAccount": "9876543210",
"sourceRoutingNumber": "021000021",
"targetAccount": "9876543219",
"targetRoutingNumber": "021000021",
"amount": "1500.00",
"currency": "USD",
"start": "2019-10-15"
},
"links": {
"self": {
"href": "/audit/records/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:type": {
"href": "/audit/types/transferScheduled"
}
}
}
Audit Record (v2.0.0)
A data record representing an auditable banking activity or action performed by a user. This conveys:
- who did something (
userId
,coreCustomerId
,username
;operatorId
if an operator performed a task on behalf of a banking customer), - what they did (
type
,category
), - when they did it (
occurredAt
), - where they did it (
host
), - what they did it to (
primaryUri
,secondaryUri
) - additional
data
that is specific to the activitytype
.
The type
is a key into the set of audit record types (see getAuditRecordType
, GET /audit/recordTypes/{type}
). An audit record has a link (apiture:type
) to the this audit record type resource. The record type contains a JSON schema that describes the data in the record's data
object.
Properties
Name | Description |
---|---|
Audit Record (v2.0.0) | A data record representing an auditable banking activity or action performed by a user. This conveys:
The |
_links | An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. This schema was resolved from |
_embedded | An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | The URI of a resource profile which describes the representation. read-only format: uri |
_error | An object which describes an error. This value is omitted if the operation succeeded without error. read-only |
_id | The unique identifier for this audit record. This is an immutable opaque string. read-only |
type | (required) The type of this audit record. This is the key into the set of audit record types. read-only minLength: 4 maxLength: 48 |
category | (required) Multiple record types can all belong to a category of types; this is an identifier for the category, derived from the record type named by type . This is a lowerCamelCase string.read-only minLength: 8 maxLength: 40 |
occurredAt | (required) The date-time when the action occurred or logged. The time is approximate. This is an RFC 3339 UTC date-time string. read-only format: date-time |
userId | The user ID of the user who performed the action. This is the _id of the user in the Users API.read-only minLength: 16 maxLength: 48 |
operatorId | The operator ID who performed the action on behalf of the banking user named by userId . This property is omitted if the user performed the action themself.read-only minLength: 16 maxLength: 48 |
coreCustomerId | The ID of the customer, as stored in the banking core, who performed the action. read-only maxLength: 48 |
username | The user name of the user who performed the action. For most operations, this is the username of the authenticated user. Note that since users may change their username, this is the username that was in effect when the audit record was created. If an administrator is performing the action on behalf of a customer, this is the administrator's user name. This may be <system> if the operation was performed by a system process.read-only |
host | The host IP address of client which was used for this activity. read-only |
primaryUri | The URI of the primary resource that this activity applies to. For example, if a transfer if scheduled or canceled, this is the URI of the transfer. read-only format: uri maxLength: 191 |
secondaryUri | The URI of a secondary resource that this activity applies to. read-only format: uri maxLength: 191 |
data | Additional properties of the audit record, represented as a type -specific object. The schema of this data is found in the schema property of the corresponding /audit/recordTypes/{type} resource. The /records collection does not support sorting and filtering based on the properties in this data object.read-only |
recordType
{
"_profile": "https://production.api.apiture.com/schemas/audit/recordType/v1.0.2/profile.json",
"_links": {
"self": {
"href": "/audit/recordTypes/transferScheduled"
}
},
"name": "transferScheduled",
"label": "Transfer Scheduled",
"category": "transfers",
"categoryLabel": "Transfers",
"version": "1.0.0",
"description": "The user scheduled a one-time or recurring transfer.",
"schema": {
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "https://production.api.apiture.com/schemas/audit/transferScheduled/v1.0.0/schema.json",
"x-apiture-name": "transferScheduled",
"x-apiture-category": "transfers",
"x-apiture-categoryLabel": "Transfers",
"x-apiture-primaryUri": "The transfer resource",
"x-apiture-secondaryUri": "The source account",
"type": "object",
"title": "Transfer Scheduled",
"description": "The user scheduled a one-time or recurring transfer.",
"required": [
"sourceAccountNumber",
"sourceRoutingNumber",
"targetAccountNumber",
"targetRoutingNumber",
"amount",
"currency",
"start"
],
"properties": {
"sourceAccountNumber": {
"description": "The account number where funds are withdrawn.",
"type": "string"
},
"sourceRoutingNumber": {
"description": "The routing number of the financial institution where funds are withdrawn.",
"type": "string"
},
"targetAccountNumber": {
"description": "The account number where funds are deposited.",
"type": "string"
},
"targetRoutingNumber": {
"description": "The routing number of the financial institution where funds are deposited.",
"type": "string"
},
"amount": {
"description": "The amount that was scheduled to transfer.",
"type": "string"
},
"currency": {
"description": "The [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) for this monetary value. This is always upper case ASCII.",
"type": "string",
"minLength": 3,
"maxLength": 3
},
"start": {
"description": "When the transfer occurs, or when a recurring transfer begins.\n",
"type": "string",
"example": "2018-06-10"
},
"every": {
"description": "For recurring transfers, how often the transfer recurs.",
"type": "string",
"example": "P1M"
},
"count": {
"description": "For a recurring transfer, this is the number of transfers which have been processed. It is a derived value and ignored on updates.",
"type": "integer",
"example": 5
},
"first": {
"description": "If `true`, future transfers in the series should be executed on the _first_ processing day of the month.",
"type": "boolean",
"example": true
},
"last": {
"description": "If `true`, future transfers in the series should be executed on the _last_ processing day of the month.",
"type": "boolean",
"example": false
},
"maximumCount": {
"description": "The maximum number of transfers to perform for a recurring transfer.",
"type": "integer",
"example": 10
},
"end": {
"description": "Do not schedule transfers beyond this date.",
"type": "string",
"example": "2018-08-01"
}
}
}
}
Audit Record Type (v1.0.2)
Representation of audit record type resources.
Properties
Name | Description |
---|---|
Audit Record Type (v1.0.2) | Representation of audit record type resources. |
_links | An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. This schema was resolved from |
_embedded | An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | The URI of a resource profile which describes the representation. read-only format: uri |
_error | An object which describes an error. This value is omitted if the operation succeeded without error. read-only |
name | (required) The name of this audit record type type. This is a lowerCamelCase string. read-only minLength: 8 maxLength: 40 |
label | (required) A short label for this audit record type. read-only minLength: 8 maxLength: 80 |
category | (required) Multiple record types can all belong to a category of types; this is an identifier for the category. This is a lowerCamelCase string. read-only minLength: 8 maxLength: 40 |
categoryLabel | (required) A short text label for the category .read-only minLength: 8 maxLength: 80 |
version | (required) The semantic version number of this record type and schema. read-only format: semver |
description | (required) A longer description of this audit record type. read-only format: markdown minLength: 8 maxLength: 800 |
schema | (required) A JSON schema object which defines the data that is associated with all audit records which use this audit record type. read-only format: json-schema |
recordTypes
{
"_profile": "https://production.api.apiture.com/schemas/audit/recordTypes/v1.0.2/profile.json",
"_links": {
"self": {
"href": "/audit/recordTypes?start=10&limit=10"
},
"collection": {
"href": "/audit/recordTypes"
}
},
"start": 0,
"count": 67,
"name": "recordTypes",
"_embedded": {
"items": [
{
"name": "transferScheduled",
"_profile": "https://production.api.apiture.com/schemas/audit/recordType/v1.0.2/profile.json",
"label": "Transfer Scheduled",
"category": "transfers",
"categoryLabel": "Transfers",
"version": "1.0.0",
"description": "The user scheduled a one-time or recurring transfer.",
"_links": {
"self": {
"href": "/audit/recordTypes/transferScheduled"
}
},
"schema": {
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "https://production.api.apiture.com/schemas/audit/transferScheduled/v1.0.0/schema.json",
"x-apiture-name": "transferScheduled",
"x-apiture-category": "transfers",
"x-apiture-categoryLabel": "Transfers",
"x-apiture-primaryUri": "The transfer resource",
"x-apiture-secondaryUri": "The source account",
"type": "object",
"title": "Transfer Scheduled",
"description": "The user scheduled a one-time or recurring transfer.",
"required": [
"sourceAccountNumber",
"sourceRoutingNumber",
"targetAccountNumber",
"targetRoutingNumber",
"amount",
"currency",
"start"
],
"properties": {
"sourceAccountNumber": {
"description": "The account number where funds are withdrawn.",
"type": "string"
},
"sourceRoutingNumber": {
"description": "The routing number of the financial institution where funds are withdrawn.",
"type": "string"
},
"targetAccountNumber": {
"description": "The account number where funds are deposited.",
"type": "string"
},
"targetRoutingNumber": {
"description": "The routing number of the financial institution where funds are deposited.",
"type": "string"
},
"amount": {
"description": "The amount that was scheduled to transfer.",
"type": "string"
},
"currency": {
"description": "The [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) for this monetary value. This is always upper case ASCII.",
"type": "string",
"minLength": 3,
"maxLength": 3
},
"start": {
"description": "When the transfer occurs, or when a recurring transfer begins.\n",
"type": "string",
"example": "2018-06-10"
},
"every": {
"description": "For recurring transfers, how often the transfer recurs.",
"type": "string",
"example": "P1M"
},
"count": {
"description": "For a recurring transfer, this is the number of transfers which have been processed. It is a derived value and ignored on updates.",
"type": "integer",
"example": 5
},
"first": {
"description": "If `true`, future transfers in the series should be executed on the _first_ processing day of the month.",
"type": "boolean",
"example": true
},
"last": {
"description": "If `true`, future transfers in the series should be executed on the _last_ processing day of the month.",
"type": "boolean",
"example": false
},
"maximumCount": {
"description": "The maximum number of transfers to perform for a recurring transfer.",
"type": "integer",
"example": 10
},
"end": {
"description": "Do not schedule transfers beyond this date.",
"type": "string",
"example": "2018-08-01"
}
}
}
}
]
}
}
Audit Record Type Collection (v1.0.2)
Collection of audit record types. The items in the collection are listed in the _embedded.items
array; the name
is recordTypes
.
Properties
Name | Description |
---|---|
Audit Record Type Collection (v1.0.2) | Collection of audit record types. The items in the collection are listed in the _embedded.items array; the name is recordTypes . |
_links | An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. This schema was resolved from |
_embedded | Embedded objects. |
» items | array: An array containing audit record type items. items: object |
_profile | The URI of a resource profile which describes the representation. read-only format: uri |
_error | An object which describes an error. This value is omitted if the operation succeeded without error. read-only |
count | The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | The start index of this page of items. |
limit | The maximum number of items per page. |
name | The name of the collection. |
records
{
"_profile": "https://production.api.apiture.com/schemas/audit/records/v2.0.0/profile.json",
"_links": {
"self": {
"href": "/audit/records?category=transfers"
},
"next": {
"href": "/audit/records?category=transfers&start=eyJjdXJzb3IiOiAiNDIwMCJ9&limit=1000"
},
"collection": {
"href": "/audit/records"
}
},
"start": "eyJjdXJzb3IiOiAiMzIwMCJ9",
"limit": 1000,
"name": "records",
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://production.api.apiture.com/schemas/audit/record/v2.0.0/profile.json",
"type": "transferScheduled",
"occurredAt": "2019-09-13T05:03:50.375Z",
"userId": "4f3ec1da-d4f3-4dbe-9ed6-ab02eed9de64",
"username": "lucy.wellphunded",
"coreCustomerId": "32bc88e4003d061f4fdb",
"host": "13.226.38.34",
"primaryUri": "https://production.api.apiture.com/transfers/scheduledTransfer/a727ff2a-08ea-42ce-b8dc-edea60646819",
"data": {
"sourceAccount": "9876543210",
"sourceRoutingNumber": "021000021",
"targetAccount": "9876543219",
"targetRoutingNumber": "021000021",
"amount": "1500.00",
"currency": "USD",
"start": "2019-10-15"
},
"links": {
"self": {
"href": "/audit/records/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:type": {
"href": "/audit/types/transferScheduled"
}
}
}
]
}
}
Audit Record Collection (v2.0.0)
Collection of audit records. The items in the collection are ordered in the _embedded.items
array; the name
is records
. The top-level _links
object may contain pagination links (self
, next
, collection
). This collection is cursor based and only supports paginating forward one page at a time, with no direct index-based access to audit records. The collection is exhausted when there is no next
link. The response includes an apiture:skip
link if the query is time-bound (i.e. contains ?startAt=
or ?endAt=
but not both). That link will skip to the next or previous time period.
Properties
Name | Description |
---|---|
Audit Record Collection (v2.0.0) | Collection of audit records. The items in the collection are ordered in the _embedded.items array; the name is records . The top-level _links object may contain pagination links (self , next , collection ). This collection is cursor based and only supports paginating forward one page at a time, with no direct index-based access to audit records. The collection is exhausted when there is no next link. The response includes an apiture:skip link if the query is time-bound (i.e. contains ?startAt= or ?endAt= but not both). That link will skip to the next or previous time period. |
_links | An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. This schema was resolved from |
_embedded | Embedded objects. |
» items | array: An array containing a page of audit record items. items: object |
_profile | The URI of a resource profile which describes the representation. read-only format: uri |
_error | An object which describes an error. This value is omitted if the operation succeeded without error. read-only |
start | An opaque marker representing the position of the current page in this resource collection. The service will use the start and limit to compute the ?start= query parameter for the next page when it provides the next link in the collection's _links . |
limit | The maximum number of items per page. |
name | A name for the items in collection. |
root
{
"_profile": "https://production.api.apiture.com/schemas/common/root/v2.1.1/profile.json",
"_links": {
"self": {
"href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
}
},
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0"
}
API Root (v2.1.1)
A HAL response, with hypermedia _links
for the top-level resources and operations in API.
This schema was resolved from common/root
.
Properties
Name | Description |
---|---|
API Root (v2.1.1) | A HAL response, with hypermedia _links for the top-level resources and operations in API. This schema was resolved from |
_links | An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. This schema was resolved from |
_embedded | An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | The URI of a resource profile which describes the representation. read-only format: uri |
_error | An object which describes an error. This value is omitted if the operation succeeded without error. read-only |
_id | This API's unique ID. read-only |
name | This API's name. |
apiVersion | This API's version. |
@apiture/api-doc
3.2.4 on Mon Oct 28 2024 14:41:03 GMT+0000 (Coordinated Universal Time).