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

Transactions v0.2.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 Transactions API manages banking account transactions for bank customers.

The Transactions API can view account transaction history for accounts held at the current financial instuitution. The /transactions collection lists all transactions, both pending and completed. For accounts with transaction history, the user can view those transactions via the /history endpoint (the getHistory operation.) Pending transactions are managed in a separate collection, under /scheduledTransactions (via the getScheduledTransactions operation.)

Note that the queries to filter transactions do not use the actual account numbers:

   GET /transactions/history?account=0399abed-fd3d-4830-a88b-30f38b8a365c

For security, these queries only filter based on the opaque account resource ID, which is decoupled from the account number. Thus, account numbers do not appear in the request URLs or in web traffic logs.

Download OpenAPI Definition (YAML)

Base URLs:

Terms of service

Email: Apiture Web: Apiture

API

Endpoints Which Describe This API

getApi

Code samples

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

GET /transactions/ HTTP/1.1

Accept: application/hal+json

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

};

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

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

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

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

};

fetch('/transactions/',
{
  method: 'GET',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json'
}

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

p JSON.parse(result)

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

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

}, headers = headers)

print r.json()

URL obj = new URL("/transactions/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        
    }

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

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

Top-level resources and operations in this API

GET /

Return links to the top-level resources and operations in this API. This API returns the following links: apiture:accounts : links to the collection of accounts held at this financial institution

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

OK

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

200 Response

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

Responses

StatusDescription
200 OK
OK
Schema: root

getApiDoc

Code samples

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

GET /transactions/apiDoc HTTP/1.1

Accept: application/json

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

};

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

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

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

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

};

fetch('/transactions/apiDoc',
{
  method: 'GET',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

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

p JSON.parse(result)

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

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

}, headers = headers)

print r.json()

URL obj = new URL("/transactions/apiDoc");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/transactions/apiDoc", data)
    req.Header = headers

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

Return API definition document

GET /apiDoc

Return the OpenAPI document that describes this API.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline

Response Schema

Transactions

Bank Account Transactions

getTransactions

Code samples

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

GET /transactions/transactions HTTP/1.1

Accept: application/hal+json

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

};

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

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

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

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

};

fetch('/transactions/transactions',
{
  method: 'GET',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json'
}

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

p JSON.parse(result)

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

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

}, headers = headers)

print r.json()

URL obj = new URL("/transactions/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        
    }

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

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

Return a collection of pending and completed transactions.

GET /transactions

Return a paginated sortable filterable searchable collection of pending and completed transactions. The links in the response include pagination links.

Note: At present, there is no way to add new transactions or to update or delete existing transactions.

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first transaction in this page. The default, 0, represents the first page of the collection.
limit
(query)
integer(int32)
The maximum number of transaction representations to return in this page.
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.
account
(query)
string
A list of server-supplied values which identify the account instances, i.e. ?account=acct1

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

start

limit

sortBy

filter

q

account

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_profile": "http://api.apiture.com/schemas/collection/transaction/v/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "transactions",
  "_links": {
    "self": {
      "href": "/transactions/transactions?start=10&limit=10"
    },
    "first": {
      "href": "/transactions/transactions?start=0&limit=10"
    },
    "next": {
      "href": "/transactions/transactions?start=20&limit=10"
    },
    "collection": {
      "href": "/transactions/transactions"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "http://api.apiture.com/schemas/transaction/v/profile.json",
        "_links": {
          "self": {
            "href": "/transactions/scheduledTransactions/0399abed-fd3d-4830-a88b-30f38b8a365c"
          },
          "apiture:account": {
            "href": "/transactions/accounts/86de587e-a5a7-11e8-98d0-529269fb1459"
          },
          "apiture:organization": {
            "href": "/transactions/organizations/86de587e-a5a7-11e8-98d0-529269fb1459"
          }
        },
        "amount": {
          "value": "35.00",
          "currency": "USD"
        },
        "schedule": {
          "start": "2018-01-01"
        },
        "state": "pending",
        "type": "debit",
        "providerSummary": "gas station"
      },
      {
        "_id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
        "_profile": "http://api.apiture.com/schemas/transaction/v/profile.json",
        "_links": {
          "self": {
            "href": "/transactions/scheduledTransactions/d62c0701-0d74-4836-83f9-ebf3709442ea"
          },
          "apiture:account": {
            "href": "/transactions/accounts/86de587e-a5a7-11e8-98d0-529269fb1459"
          },
          "apiture:organization": {
            "href": "/transactions/organizations/86de587e-a5a7-11e8-98d0-529269fb1459"
          }
        },
        "amount": {
          "value": "1000.00",
          "currency": "USD"
        },
        "schedule": {
          "start": "2018-01-02"
        },
        "state": "pending",
        "type": "debit",
        "providerSummary": "donation"
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: transactions
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

getTransaction

Code samples

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

GET /transactions/transactions/{transactionId} HTTP/1.1

Accept: application/hal+json

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

};

$.ajax({
  url: '/transactions/transactions/{transactionId}',
  method: 'get',

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

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

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

};

fetch('/transactions/transactions/{transactionId}',
{
  method: 'GET',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json'
}

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

p JSON.parse(result)

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

r = requests.get('/transactions/transactions/{transactionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/transactions/transactions/{transactionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/transactions/transactions/{transactionId}", data)
    req.Header = headers

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

Fetch a representation of this transaction

GET /transactions/{transactionId}

Return a HAL representation of this transaction resource.

Parameters

Parameter Description
transactionId
(path)
string (required)
The unique identifier of this transaction. This is an opaque string. This string is not the same as the bank's core transaction ID; it is simply the resource ID for referencing the transaction resource via the API.
unmasked
(query)
boolean
When requesting a transaction, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true, to request that the response body includes the full account number. Such requests are auditable.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

* transactionId

unmasked

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_profile": "http://api.apiture.com/schemas/example/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "{uri of current resource}"
    }
  },
  "_id": "string",
  "amount": {
    "value": "3456.78",
    "currency": "str"
  },
  "state": "pending",
  "type": "debit",
  "subtype": "string",
  "providerSummary": "string",
  "summary": "string",
  "description": "string",
  "sourceAccountNumbers": {
    "masked": "*************3210",
    "full": "9876543210"
  },
  "sourceAccountName": "string",
  "targetAccountNumbers": {
    "masked": "*************3210",
    "full": "9876543210"
  },
  "targetAccountName": "string",
  "transactionCode": "string",
  "schedule": {
    "start": "2018-01-01"
  },
  "postedOn": "2019-02-20",
  "reversedOn": "2019-02-20"
}

Responses

StatusDescription
200 OK
OK
Schema: transaction
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
404 Not Found
Not Found. There is no such transaction resource at the specified {transactionId} The _error field in the response will contain details about the request error.
Schema: error

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this resource.

Scheduled Transactions

Bank Account Scheduled Transactions

getScheduledTransactions

Code samples

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

GET /transactions/scheduledTransactions HTTP/1.1

Accept: application/hal+json

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

};

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

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

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

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

};

fetch('/transactions/scheduledTransactions',
{
  method: 'GET',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json'
}

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

p JSON.parse(result)

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

r = requests.get('/transactions/scheduledTransactions', params={

}, headers = headers)

print r.json()

URL obj = new URL("/transactions/scheduledTransactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/transactions/scheduledTransactions", data)
    req.Header = headers

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

Return a collection of scheduled transactions

GET /scheduledTransactions

Return a paginated sortable filterable searchable collection of transactions. The links in the response include pagination links.

Note: At present, there is no way to add new transactions or to update or delete existing scheduled transactions.

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first transaction in this page. The default, 0, represents the first page of the collection.
limit
(query)
integer(int32)
The maximum number of transaction representations to return in this page.
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.
account
(query)
string
A list of server-supplied values which identify the account instances, i.e. ?account=acct1

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

start

limit

sortBy

filter

q

account

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_profile": "http://api.apiture.com/schemas/collection/transaction/v/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "transactions",
  "_links": {
    "self": {
      "href": "/transactions/scheduledTransactions?start=10&limit=10"
    },
    "first": {
      "href": "/transactions/scheduledTransactions?start=0&limit=10"
    },
    "next": {
      "href": "/transactions/scheduledTransactions?start=20&limit=10"
    },
    "collection": {
      "href": "/transactions/scheduledTransactions"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "http://api.apiture.com/schemas/transaction/v/profile.json",
        "_links": {
          "self": {
            "href": "/transactions/scheduledTransactions/0399abed-fd3d-4830-a88b-30f38b8a365c"
          },
          "apiture:account": {
            "href": "/transactions/accounts/86de587e-a5a7-11e8-98d0-529269fb1459"
          },
          "apiture:organization": {
            "href": "/transactions/organizations/86de587e-a5a7-11e8-98d0-529269fb1459"
          }
        },
        "amount": {
          "value": "35.00",
          "currency": "USD"
        },
        "schedule": {
          "start": "2018-01-01"
        },
        "state": "pending",
        "type": "debit",
        "providerSummary": "gas station"
      },
      {
        "_id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
        "_profile": "http://api.apiture.com/schemas/transaction/v/profile.json",
        "_links": {
          "self": {
            "href": "/transactions/scheduledTransactions/d62c0701-0d74-4836-83f9-ebf3709442ea"
          },
          "apiture:account": {
            "href": "/transactions/accounts/86de587e-a5a7-11e8-98d0-529269fb1459"
          },
          "apiture:organization": {
            "href": "/transactions/organizations/86de587e-a5a7-11e8-98d0-529269fb1459"
          }
        },
        "amount": {
          "value": "1000.00",
          "currency": "USD"
        },
        "schedule": {
          "start": "2018-01-02"
        },
        "state": "pending",
        "type": "debit",
        "providerSummary": "donation"
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: scheduledTransactions
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

History

Bank Account Past Transactions

getHistory

Code samples

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

GET /transactions/history HTTP/1.1

Accept: application/hal+json

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

};

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

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

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

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

};

fetch('/transactions/history',
{
  method: 'GET',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json'
}

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

p JSON.parse(result)

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

r = requests.get('/transactions/history', params={

}, headers = headers)

print r.json()

URL obj = new URL("/transactions/history");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/transactions/history", data)
    req.Header = headers

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

Return a collection of past transactions

GET /history

Return a paginated sortable filterable searchable collection of transactions. The links in the response include pagination links. Transactions in the history are immutable and not deletable.

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first transaction in this page. The default, 0, represents the first page of the collection.
limit
(query)
integer(int32)
The maximum number of transaction representations to return in this page.
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.
account
(query)
string
A list of server-supplied values which identify the account instances, i.e. ?account=acct1

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

start

limit

sortBy

filter

q

account

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_profile": "http://api.apiture.com/schemas/collection/transaction/v/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "transactions",
  "_links": {
    "self": {
      "href": "/transactions/pastTransactions?start=10&limit=10"
    },
    "first": {
      "href": "/transactions/pastTransactions?start=0&limit=10"
    },
    "next": {
      "href": "/transactions/pastTransactions?start=20&limit=10"
    },
    "collection": {
      "href": "/transactions/pastTransactions"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "http://api.apiture.com/schemas/transaction/v/profile.json",
        "_links": {
          "self": {
            "href": "/transactions/pastTransactions/0399abed-fd3d-4830-a88b-30f38b8a365c"
          },
          "apiture:account": {
            "href": "/transactions/accounts/86de587e-a5a7-11e8-98d0-529269fb1459"
          },
          "apiture:organization": {
            "href": "/transactions/organizations/86de587e-a5a7-11e8-98d0-529269fb1459"
          }
        },
        "amount": {
          "value": "35.00",
          "currency": "USD"
        },
        "postedOn": "2018-01-01",
        "state": "completed",
        "type": "debit",
        "providerSummary": "gas station"
      },
      {
        "_id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
        "_profile": "http://api.apiture.com/schemas/transaction/v/profile.json",
        "_links": {
          "self": {
            "href": "/transactions/pastTransactions/d62c0701-0d74-4836-83f9-ebf3709442ea"
          },
          "apiture:account": {
            "href": "/transactions/accounts/86de587e-a5a7-11e8-98d0-529269fb1459"
          },
          "apiture:organization": {
            "href": "/transactions/organizations/86de587e-a5a7-11e8-98d0-529269fb1459"
          }
        },
        "amount": {
          "value": "1000.00",
          "currency": "USD"
        },
        "postedOn": "2018-01-01",
        "state": "completed",
        "type": "debit",
        "providerSummary": "donation"
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: pastTransactions
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Schemas

transactionType

"debit"

Transaction Type

Properties

Schema NameDescription
Transaction Type string
type should indicate the type of the transaction (not what is allowed for the account). i.e. credit - the transaction was a credit posted to the account, such as transfer funds to this account or interested posted to the account debit - the transaction debited funds from the account, such as a check written against an account.

Enumerated Values

Property Value
Transaction Type debit
Transaction Type credit

transactionFields

{
  "_profile": "http://api.apiture.com/schemas/example/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "{uri of current resource}"
    }
  },
  "_id": "string",
  "amount": {
    "value": "3456.78",
    "currency": "str"
  },
  "state": "pending",
  "type": "debit",
  "subtype": "string",
  "providerSummary": "string",
  "summary": "string",
  "description": "string",
  "sourceAccountNumbers": {
    "masked": "*************3210",
    "full": "9876543210"
  },
  "sourceAccountName": "string",
  "targetAccountNumbers": {
    "masked": "*************3210",
    "full": "9876543210"
  },
  "targetAccountName": "string",
  "transactionCode": "string",
  "schedule": {
    "start": "2018-01-01"
  },
  "postedOn": "2019-02-20",
  "reversedOn": "2019-02-20"
}

Transaction Fields

Properties

Schema NameDescription
Transaction Fields any
Core fields of the transaction resource.

allOf

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

and

Schema NameDescription
anonymous object
undefined
_id string
The unique identifier for this approval resource. This is an immutable opaque string.
amount money (required)
The amount of the transaction.
state string (required)
The status of the transaction.
type transactionType (required)
type should indicate the type of the transaction (not what is allowed for the account). i.e. credit - the transaction was a credit posted to the account, such as transfer funds to this account or interested posted to the account debit - the transaction debited funds from the account, such as a check written against an account.
subtype string
A subtype, more specific transaction type.
providerSummary string (required)
Human readable version of the transaction description.
summary string
A cleansed version of the providerSummary.
description string
This field contains additional descriptive information about the transaction.
sourceAccountNumbers accountNumbers
The account number returned from the core.
sourceAccountName string
The account name returned from the core.
targetAccountNumbers targetAccountNumbers
The account number returned from the core.
targetAccountName string
The account name returned from the core.
transactionCode string (required)
The transaction code returned from the core.
schedule schedule
Describes when the transaction is scheduled to occur.
postedOn string(date)
The date when the transaction was completed. This property is set only if the state is completed.
reversedOn string(date)
The date when the transaction was reversed. This property is set only if the state is reversed.

Enumerated Values

Property Value
state pending
state completed
state reversed

transaction

{
  "_profile": "http://api.apiture.com/schemas/example/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "{uri of current resource}"
    }
  },
  "_id": "string",
  "amount": {
    "value": "3456.78",
    "currency": "str"
  },
  "state": "pending",
  "type": "debit",
  "subtype": "string",
  "providerSummary": "string",
  "summary": "string",
  "description": "string",
  "sourceAccountNumbers": {
    "masked": "*************3210",
    "full": "9876543210"
  },
  "sourceAccountName": "string",
  "targetAccountNumbers": {
    "masked": "*************3210",
    "full": "9876543210"
  },
  "targetAccountName": "string",
  "transactionCode": "string",
  "schedule": {
    "start": "2018-01-01"
  },
  "postedOn": "2019-02-20",
  "reversedOn": "2019-02-20"
}

A transaction

Properties

Schema NameDescription
A transaction transactionFields
A transaction

transactions

{
  "_profile": "http://api.apiture.com/schemas/collection/transaction/v/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "transactions",
  "_links": {
    "self": {
      "href": "/transactions/transactions?start=10&limit=10"
    },
    "first": {
      "href": "/transactions/transactions?start=0&limit=10"
    },
    "next": {
      "href": "/transactions/transactions?start=20&limit=10"
    },
    "collection": {
      "href": "/transactions/transactions"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "http://api.apiture.com/schemas/transaction/v/profile.json",
        "_links": {
          "self": {
            "href": "/transactions/scheduledTransactions/0399abed-fd3d-4830-a88b-30f38b8a365c"
          },
          "apiture:account": {
            "href": "/transactions/accounts/86de587e-a5a7-11e8-98d0-529269fb1459"
          },
          "apiture:organization": {
            "href": "/transactions/organizations/86de587e-a5a7-11e8-98d0-529269fb1459"
          }
        },
        "amount": {
          "value": "35.00",
          "currency": "USD"
        },
        "schedule": {
          "start": "2018-01-01"
        },
        "state": "pending",
        "type": "debit",
        "providerSummary": "gas station"
      },
      {
        "_id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
        "_profile": "http://api.apiture.com/schemas/transaction/v/profile.json",
        "_links": {
          "self": {
            "href": "/transactions/scheduledTransactions/d62c0701-0d74-4836-83f9-ebf3709442ea"
          },
          "apiture:account": {
            "href": "/transactions/accounts/86de587e-a5a7-11e8-98d0-529269fb1459"
          },
          "apiture:organization": {
            "href": "/transactions/organizations/86de587e-a5a7-11e8-98d0-529269fb1459"
          }
        },
        "amount": {
          "value": "1000.00",
          "currency": "USD"
        },
        "schedule": {
          "start": "2018-01-02"
        },
        "state": "pending",
        "type": "debit",
        "providerSummary": "donation"
      }
    ]
  }
}

Transaction Collection

Properties

Schema NameDescription
Transaction Collection any
Collection of transactions. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection.)

allOf

Schema NameDescription
anonymous collection
A collection of resources.

and

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

collection

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

A collection of resources.

Properties

Schema NameDescription
A collection of resources. any
A collection of resources.

allOf

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

and

Schema NameDescription
anonymous object
undefined
count integer
The total number of items in the collection.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

scheduledTransactions

{
  "_profile": "http://api.apiture.com/schemas/collection/transaction/v/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "transactions",
  "_links": {
    "self": {
      "href": "/transactions/scheduledTransactions?start=10&limit=10"
    },
    "first": {
      "href": "/transactions/scheduledTransactions?start=0&limit=10"
    },
    "next": {
      "href": "/transactions/scheduledTransactions?start=20&limit=10"
    },
    "collection": {
      "href": "/transactions/scheduledTransactions"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "http://api.apiture.com/schemas/transaction/v/profile.json",
        "_links": {
          "self": {
            "href": "/transactions/scheduledTransactions/0399abed-fd3d-4830-a88b-30f38b8a365c"
          },
          "apiture:account": {
            "href": "/transactions/accounts/86de587e-a5a7-11e8-98d0-529269fb1459"
          },
          "apiture:organization": {
            "href": "/transactions/organizations/86de587e-a5a7-11e8-98d0-529269fb1459"
          }
        },
        "amount": {
          "value": "35.00",
          "currency": "USD"
        },
        "schedule": {
          "start": "2018-01-01"
        },
        "state": "pending",
        "type": "debit",
        "providerSummary": "gas station"
      },
      {
        "_id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
        "_profile": "http://api.apiture.com/schemas/transaction/v/profile.json",
        "_links": {
          "self": {
            "href": "/transactions/scheduledTransactions/d62c0701-0d74-4836-83f9-ebf3709442ea"
          },
          "apiture:account": {
            "href": "/transactions/accounts/86de587e-a5a7-11e8-98d0-529269fb1459"
          },
          "apiture:organization": {
            "href": "/transactions/organizations/86de587e-a5a7-11e8-98d0-529269fb1459"
          }
        },
        "amount": {
          "value": "1000.00",
          "currency": "USD"
        },
        "schedule": {
          "start": "2018-01-02"
        },
        "state": "pending",
        "type": "debit",
        "providerSummary": "donation"
      }
    ]
  }
}

Scheduled Transaction Collection

Properties

Schema NameDescription
Scheduled Transaction Collection any
Collection of scheduled transactions. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection.)

allOf

Schema NameDescription
anonymous collection
A collection of resources.

and

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

pastTransactions

{
  "_profile": "http://api.apiture.com/schemas/collection/transaction/v/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "transactions",
  "_links": {
    "self": {
      "href": "/transactions/pastTransactions?start=10&limit=10"
    },
    "first": {
      "href": "/transactions/pastTransactions?start=0&limit=10"
    },
    "next": {
      "href": "/transactions/pastTransactions?start=20&limit=10"
    },
    "collection": {
      "href": "/transactions/pastTransactions"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "http://api.apiture.com/schemas/transaction/v/profile.json",
        "_links": {
          "self": {
            "href": "/transactions/pastTransactions/0399abed-fd3d-4830-a88b-30f38b8a365c"
          },
          "apiture:account": {
            "href": "/transactions/accounts/86de587e-a5a7-11e8-98d0-529269fb1459"
          },
          "apiture:organization": {
            "href": "/transactions/organizations/86de587e-a5a7-11e8-98d0-529269fb1459"
          }
        },
        "amount": {
          "value": "35.00",
          "currency": "USD"
        },
        "postedOn": "2018-01-01",
        "state": "completed",
        "type": "debit",
        "providerSummary": "gas station"
      },
      {
        "_id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
        "_profile": "http://api.apiture.com/schemas/transaction/v/profile.json",
        "_links": {
          "self": {
            "href": "/transactions/pastTransactions/d62c0701-0d74-4836-83f9-ebf3709442ea"
          },
          "apiture:account": {
            "href": "/transactions/accounts/86de587e-a5a7-11e8-98d0-529269fb1459"
          },
          "apiture:organization": {
            "href": "/transactions/organizations/86de587e-a5a7-11e8-98d0-529269fb1459"
          }
        },
        "amount": {
          "value": "1000.00",
          "currency": "USD"
        },
        "postedOn": "2018-01-01",
        "state": "completed",
        "type": "debit",
        "providerSummary": "donation"
      }
    ]
  }
}

Past Transaction Collection

Properties

Schema NameDescription
Past Transaction Collection any
Collection of past transactions. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection.)

allOf

Schema NameDescription
anonymous collection
A collection of resources.

and

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

abstractResource

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

Abstract Resource

Properties

Schema NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.

root

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

API Root

Properties

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

allOf

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

and

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

errorResponse

{
  "_profile": "http://api.apiture.com/schemas/error/v1.0.0/.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/error/v1.0.0/profile.json",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2019-02-20T12:18:18.898Z",
    "_links": {
      "describedby": {
        "href": "http://doc.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Error Response

Properties

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

error

{
  "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
  "_profile": "https://api.apiture.com/schemas/error/v1.0.0/profile.json",
  "message": "The value for deposit must be greater than 0.",
  "statusCode": 422,
  "type": "positiveNumberRequired",
  "attributes": {
    "value": -125.5
  },
  "remediation": "Provide a value which is greater than 0",
  "occurredAt": "2018-01-25T05:50:52.375Z",
  "_links": {
    "describedby": {
      "href": "http://doc.apiture.com/errors/positiveNumberRequired"
    }
  },
  "_embedded": {
    "errors": []
  }
}

Error

Properties

Schema NameDescription
message string (required)
A localized message string describing the error condition.
_id string
A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string.
statusCode integer
The HTTP status code associate with this error.
minimum: 100
maximum: 599
type string
An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode. For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet.
occurredAt string(date-time)
An ISO 8601 UTC time stamp indicating when the error occurred.
attributes attributes
Data attribute associated with the error, such as values or constraints.
remediation string
An optional localized string which provides hints for how the user or client can resolve the error.
_embedded object
Optional embedded array of errors. This field may not exist if the error does not have nested errors.
items [errorResponse]
An array of error objects.

attributes

{}

Attributes

Properties

No properties

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

Links

Properties

Schema NameDescription
additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.

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

Link

Properties

Schema NameDescription
href string(uri) (required)
The URI or URI template for the resource/operation this link refers to.
type string
The media type for the resource.
templated boolean
If true, the link's href is a URI template.
title string
An optional human-readable localized title for the link.
deprecation string(uri)
If present, the containing link is deprecated and the value is a URI which provides human-readable text information about the deprecation.
profile string(uri)
The URI of a profile document, a JSON document which describes the target resource/operation.

money

{
  "value": "3456.78",
  "currency": "str"
}

An amount of money in a specific currency.

Properties

Schema NameDescription
value string
The net monetary value. A negative amount denotes a debit; a positive amount a credit. The numeric value is represented as a string so that it can be exact with no loss of precision.
currency string
The ISO 4217 currency code for this monetary value. This is always upper case ASCII. TODO: ISO 4217 defines three-character codes. However, ISO 4217 does not account for cryptocurrencies. Of note, DASH uses 4 characters.
minLength: 3
maxLength: 3

accountNumbers

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

Account Numbers

Properties

Schema NameDescription
masked string
A partial account number that does not contain all the digits of the full account number. This masked number appears in statements or in user experience presentation. It is sufficient for a user to differentiate this account from other accounts they hold, but is not sufficient for initiating transfers, etc. The first character is the mask character and is repeated; this does not indicate that the full account number is the same as the mask length. This value is derived and immutable.
minLength: 9
maxLength: 32
full string
The full account number. This value only appears when ?unmasked=true is passed on the get request. Not included in the summary representation of the account that is included in account collection responses.
minLength: 9
maxLength: 32

targetAccountNumbers

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

Target Account Numbers

Properties

Schema NameDescription
masked string
A partial account number that does not contain all the digits of the full account number. This masked number appears in statements or in user experience presentation. It is sufficient for a user to differentiate this account from other accounts they hold, but is not sufficient for initiating transfers, etc. The first character is the mask character and is repeated; this does not indicate that the full account number is the same as the mask length. This value is derived and immutable.
minLength: 9
maxLength: 32
full string
The full account number. This value only appears when ?unmasked=true is passed on the get request. Not included in the summary representation of the account that is included in account collection responses.
minLength: 9
maxLength: 32

schedule

{
  "start": "2018-01-01"
}

Schedule

Properties

Schema NameDescription
start string (required)
When the transaction occurs. This may be either a date in yyyy-mm-dd format, or a date-time in yyyy-mm-ddTHH:MM:SSZ format. If present, the time portion is a _hint_; the FI may not be able to schedule transaction at specific times. If start is omitted, the transaction will be scheduled for the next processing day. If start is the current day, the transaction may be scheduled for the next processing day if transaction processing has stopped for the day.