Shell HTTP Node.JS JavaScript Ruby Python Java Go

Account to Account Transfers v0.8.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Schedule and manage account to account transfers.

Download OpenAPI Definition (YAML)

Base URLs:

Terms of service

Email: Apiture Web: Apiture

License: Apiture API License

Authentication

Transfers

Banking Transfers

listTransfers

Code samples

# You can also use wget
curl -X GET https://api.apiture.com/banking/transfers \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.apiture.com/banking/transfers HTTP/1.1
Host: api.apiture.com
Accept: application/json

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

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.apiture.com/banking/transfers',
{
  method: 'GET',

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

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.apiture.com/banking/transfers',
  method: 'get',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.apiture.com/banking/transfers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.apiture.com/banking/transfers', params={

}, headers = headers)

print r.json()

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

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.apiture.com/banking/transfers", data)
    req.Header = headers

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

Return a collection of transfers

GET https://api.apiture.com/banking/transfers

Return a paginated collection of transfers. The nextPage_url in the response is a pagination link.

Parameters

ParameterDescription
scheduledOn dateRange
Return only transactions whose scheduledOn date is in this date range. Dates ranges use dates expressed in YYYY-MM-DD RFC 3339 date format. Example date ranges:
  • 2022-05-19 match only transfers scheduled on May 19, 2022.
  • [2022-05-01,2022-06-01) in May, 2022: on or after May 1, but before June 1
  • (2022-05-01,2022-06-01) in May, 2022 (on or after May 1, but before June 1)
  • [2022-05-09,] on or after May 9, 2022
  • (2022-05-09,) after May 9, 2022
  • [,2022-05-09] on or before May 9, 2022
  • (,2022-05-09) before May 9, 2022

pattern: ^\d{4}-\d{2}-\d{2}|([[(](\d{4}-\d{2}-\d{2},(\d{4}-\d{2}-\d{2})?|,\d{4}-\d{2}-\d{2})[)\]])$
historical boolean
If true, list only historical (state is processed) transfers. If false, list only transfers that have not yet finished processing. If omitted, list all transfers.
start string
The location of the next item in the collection. This is an opaque cursor supplied by the API service. Omit this to start at the beginning of the collection. The client does not define this value; the API services automatically pass the ?start= parameter on the nextPage_url.
Default: ""
maxLength: 256
limit integer(int32)
The maximum number of items to return in this paged response.
Default: 100
minimum: 0
maximum: 1000

Example responses

200 Response

{
  "start": "d1b48af913464aa49fcb07065dcc0616",
  "limit": 10,
  "nextPage_url": "https://production.api.apiture.com/transfers/transfers?start=6117a4dcefb841cab7316cef1ac8b58c&limit=10",
  "items": [
    {
      "id": "0399abed-fd3d",
      "amount": "275.00",
      "memo": "Cover check for car repair",
      "sourceAccount": {
        "id": "bd9b7af2-6f9b",
        "label": "Premiere Checking *6789",
        "type": "checking",
        "location": "internal"
      },
      "targetAccount": {
        "id": "88b1ca3e-d0f3",
        "label": "Personal Savings *4567",
        "type": "savings",
        "location": "internal"
      },
      "schedule": {
        "scheduledOn": "2022-06-28",
        "frequency": "once"
      }
    },
    {
      "id": "d62c0701-0d74",
      "amount": "100.00",
      "memo": "cover check for school books",
      "sourceAccount": {
        "id": "bd9b7af2-6f9b",
        "label": "Checking *6789",
        "type": "checking",
        "location": "internal"
      },
      "targetAccount": {
        "id": "c8396f59-624b",
        "label": "Checking *3456",
        "type": "checking",
        "location": "internal"
      },
      "schedule": {
        "scheduledOn": "2022-06-28",
        "frequency": "once"
      }
    }
  ]
}

Responses

StatusDescription
200 OK
OK.
Schema: transfers
StatusDescription
400 Bad Request

Bad Request. The request body, request headers, and/or query parameters are not well-formed.

This error response may have one of the following type values:

Schema: problemResponse
StatusDescription
401 Unauthorized

Unauthorized. The operation require authentication but none was given.

This error response may have one of the following type values:

Schema: problemResponse
HeaderWWW-Authenticate
string
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication.
StatusDescription
403 Forbidden

Forbidden. The authenticated caller is not authorized to perform the requested operation.

This error response may have one of the following type values:

Schema: problemResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
Schema: problemResponse

createTransfer

Code samples

# You can also use wget
curl -X POST https://api.apiture.com/banking/transfers \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.apiture.com/banking/transfers HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json

const fetch = require('node-fetch');
const inputBody = '{
  "amount": "275.00",
  "memo": "Cover check for car repair",
  "sourceAccount": {
    "id": "bd9b7af2-6f9b",
    "location": "internal"
  },
  "targetAccount": {
    "id": "88b1ca3e-d0f3",
    "location": "internal"
  },
  "schedule": {
    "scheduledOn": "2022-06-28",
    "frequency": "once"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.apiture.com/banking/transfers',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.apiture.com/banking/transfers',
  method: 'post',

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

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.apiture.com/banking/transfers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.apiture.com/banking/transfers', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.apiture.com/banking/transfers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.apiture.com/banking/transfers", data)
    req.Header = headers

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

Create a new transfer

POST https://api.apiture.com/banking/transfers

Create a new transfer within the transfers collection.

Body parameter

{
  "amount": "275.00",
  "memo": "Cover check for car repair",
  "sourceAccount": {
    "id": "bd9b7af2-6f9b",
    "location": "internal"
  },
  "targetAccount": {
    "id": "88b1ca3e-d0f3",
    "location": "internal"
  },
  "schedule": {
    "scheduledOn": "2022-06-28",
    "frequency": "once"
  }
}

Parameters

ParameterDescription
body newTransfer (required)
The data necessary to create a new transfer.

Example responses

201 Response

{
  "amount": "275.00",
  "sourceAccount": {
    "id": "bd9b7af2-6f9b",
    "label": "Premiere Checking *6789",
    "type": "checking",
    "location": "internal"
  },
  "targetAccount": {
    "id": "88b1ca3e-d0f3",
    "label": "Personal Savings *4567",
    "type": "savings",
    "location": "internal"
  },
  "schedule": {
    "scheduledOn": "2022-06-28",
    "frequency": "once"
  },
  "processedAt": "2022-06-27T021:00:00.000Z",
  "updatedBy": "James Bond",
  "id": "0399abed-fd3d",
  "memo": "Cover check for car repair"
}

Responses

StatusDescription
201 Created
Created.
Schema: transfer
HeaderLocation
string uri-reference
The URI of the new transfer.
StatusDescription
400 Bad Request

Bad Request. The request body, request headers, and/or query parameters are not well-formed.

This error response may have one of the following type values:

Schema: problemResponse
StatusDescription
401 Unauthorized

Unauthorized. The operation require authentication but none was given.

This error response may have one of the following type values:

Schema: problemResponse
HeaderWWW-Authenticate
string
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication.
StatusDescription
403 Forbidden

Forbidden. The user's permissions do not allow the transfer.

This error response may have one of the following type values:

Schema: problemResponse
StatusDescription
422 Unprocessable Entity

Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

This error response may have one of the following type values:

Schema: problemResponse

getTransfer

Code samples

# You can also use wget
curl -X GET https://api.apiture.com/banking/transfers/{transferId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.apiture.com/banking/transfers/{transferId} HTTP/1.1
Host: api.apiture.com
Accept: application/json

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

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.apiture.com/banking/transfers/{transferId}',
{
  method: 'GET',

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

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.apiture.com/banking/transfers/{transferId}',
  method: 'get',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.apiture.com/banking/transfers/{transferId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.apiture.com/banking/transfers/{transferId}', params={

}, headers = headers)

print r.json()

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

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.apiture.com/banking/transfers/{transferId}", data)
    req.Header = headers

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

Fetch a representation of this transfer

GET https://api.apiture.com/banking/transfers/{transferId}

Return the JSON representation of this transfer resource.

Parameters

ParameterDescription
transferId resourceId (required)
The unique identifier of this transfer. This is an opaque string.
minLength: 6
maxLength: 48
pattern: ^[-_:.~$a-zA-Z0-9]+$

Example responses

200 Response

{
  "amount": "275.00",
  "sourceAccount": {
    "id": "bd9b7af2-6f9b",
    "label": "Premiere Checking *6789",
    "type": "checking",
    "location": "internal"
  },
  "targetAccount": {
    "id": "88b1ca3e-d0f3",
    "label": "Personal Savings *4567",
    "type": "savings",
    "location": "internal"
  },
  "schedule": {
    "scheduledOn": "2022-06-28",
    "frequency": "once"
  },
  "processedAt": "2022-06-27T021:00:00.000Z",
  "updatedBy": "James Bond",
  "id": "0399abed-fd3d",
  "memo": "Cover check for car repair"
}

Responses

StatusDescription
200 OK
OK.
Schema: transfer
StatusDescription
401 Unauthorized

Unauthorized. The operation require authentication but none was given.

This error response may have one of the following type values:

Schema: problemResponse
HeaderWWW-Authenticate
string
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication.
StatusDescription
403 Forbidden

Forbidden. The authenticated caller is not authorized to perform the requested operation.

This error response may have one of the following type values:

Schema: problemResponse
StatusDescription
404 Not Found
Not Found. There is no such transfer resource at the specified {transferId}.
Schema: problemResponse

patchTransfer

Code samples

# You can also use wget
curl -X PATCH https://api.apiture.com/banking/transfers/{transferId} \
  -H 'Content-Type: application/merge-patch+json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.apiture.com/banking/transfers/{transferId} HTTP/1.1
Host: api.apiture.com
Content-Type: application/merge-patch+json
Accept: application/json

const fetch = require('node-fetch');
const inputBody = '{
  "amount": "275.00",
  "targetAccount": {
    "id": "88b1ca3e-d0f3"
  },
  "schedule": {
    "scheduledOn": "2022-06-28"
  }
}';
const headers = {
  'Content-Type':'application/merge-patch+json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.apiture.com/banking/transfers/{transferId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

var headers = {
  'Content-Type':'application/merge-patch+json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.apiture.com/banking/transfers/{transferId}',
  method: 'patch',

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

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/merge-patch+json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.apiture.com/banking/transfers/{transferId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/merge-patch+json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.apiture.com/banking/transfers/{transferId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.apiture.com/banking/transfers/{transferId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/merge-patch+json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.apiture.com/banking/transfers/{transferId}", data)
    req.Header = headers

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

Update this transfer

PATCH https://api.apiture.com/banking/transfers/{transferId}

Perform a partial update of this transfer as per JSON Merge Patch format and processing rules. Only fields in the request body are updated on the resource; fields which are omitted are not updated.

Body parameter

{
  "amount": "275.00",
  "targetAccount": {
    "id": "88b1ca3e-d0f3"
  },
  "schedule": {
    "scheduledOn": "2022-06-28"
  }
}

Parameters

ParameterDescription
body transferPatch (required)
The fields to update within the transfer.
transferId resourceId (required)
The unique identifier of this transfer. This is an opaque string.
minLength: 6
maxLength: 48
pattern: ^[-_:.~$a-zA-Z0-9]+$

Example responses

200 Response

{
  "amount": "275.00",
  "sourceAccount": {
    "id": "bd9b7af2-6f9b",
    "label": "Premiere Checking *6789",
    "type": "checking",
    "location": "internal"
  },
  "targetAccount": {
    "id": "88b1ca3e-d0f3",
    "label": "Personal Savings *4567",
    "type": "savings",
    "location": "internal"
  },
  "schedule": {
    "scheduledOn": "2022-06-28",
    "frequency": "once"
  },
  "processedAt": "2022-06-27T021:00:00.000Z",
  "updatedBy": "James Bond",
  "id": "0399abed-fd3d",
  "memo": "Cover check for car repair"
}

Responses

StatusDescription
200 OK
OK.
Schema: transfer
StatusDescription
400 Bad Request

Bad Request. The request body, request headers, and/or query parameters are not well-formed.

This error response may have one of the following type values:

Schema: problemResponse
StatusDescription
401 Unauthorized

Unauthorized. The operation require authentication but none was given.

This error response may have one of the following type values:

Schema: problemResponse
HeaderWWW-Authenticate
string
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication.
StatusDescription
403 Forbidden

Forbidden. The authenticated caller is not authorized to perform the requested operation.

This error response may have one of the following type values:

Schema: problemResponse
StatusDescription
404 Not Found
Not Found. There is no such transfer resource at the specified {transferId}.
Schema: problemResponse
StatusDescription
422 Unprocessable Entity

Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

This error response may have one of the following type values:

Schema: problemResponse

deleteTransfer

Code samples

# You can also use wget
curl -X DELETE https://api.apiture.com/banking/transfers/{transferId} \
  -H 'Accept: application/problem+json' \
  -H 'Authorization: Bearer {access-token}'

DELETE https://api.apiture.com/banking/transfers/{transferId} HTTP/1.1
Host: api.apiture.com
Accept: application/problem+json

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

const headers = {
  'Accept':'application/problem+json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.apiture.com/banking/transfers/{transferId}',
{
  method: 'DELETE',

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

var headers = {
  'Accept':'application/problem+json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.apiture.com/banking/transfers/{transferId}',
  method: 'delete',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/problem+json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://api.apiture.com/banking/transfers/{transferId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/problem+json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.apiture.com/banking/transfers/{transferId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.apiture.com/banking/transfers/{transferId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/problem+json"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.apiture.com/banking/transfers/{transferId}", data)
    req.Header = headers

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

Delete this transfer resource

DELETE https://api.apiture.com/banking/transfers/{transferId}

Delete this transfer resource and any resources that are owned by it. Only transfers that have not been processed may be deleted.

Parameters

ParameterDescription
transferId resourceId (required)
The unique identifier of this transfer. This is an opaque string.
minLength: 6
maxLength: 48
pattern: ^[-_:.~$a-zA-Z0-9]+$

Example responses

401 Response

{
  "id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
  "type": "https://production.api.apiture.com/errors/noSuchAccount/v1.0.0",
  "title": "Account Not Found",
  "status": 422,
  "occurredAt": "2022-04-25T12:42:21.375Z",
  "detail": "No account exists for the given account reference",
  "instance": "https://production.api.apiture.com/banking/transfers/bb709151-575041fcd617"
}

Responses

StatusDescription
204 No Content
No Content. The operation succeeded but returned no response body.
StatusDescription
401 Unauthorized

Unauthorized. The operation require authentication but none was given.

This error response may have one of the following type values:

Schema: problemResponse
HeaderWWW-Authenticate
string
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication.
StatusDescription
403 Forbidden

Forbidden. The authenticated caller is not authorized to perform the requested operation.

This error response may have one of the following type values:

Schema: problemResponse
StatusDescription
404 Not Found
Not Found. There is no such transfer resource at the specified {transferId}.
Schema: problemResponse
StatusDescription
409 Conflict

Conflict.

This error response may have one of the following type values:

Schema: problemResponse

Schemas

accountLocation

"internal"

Account Location (v1.0.0)

Indicates where an account is held:

Type: string
enum values: internal, external, outside

apiProblem

{
  "id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
  "type": "https://production.api.apiture.com/errors/accountNotFound/v1.0.0",
  "title": "Account Not Found",
  "status": 422,
  "occurredAt": "2022-04-25T12:42:21.375Z",
  "detail": "No account exists at the given account_url",
  "instance": "https://production.api.apiture.com/banking/transfers/bb709151-575041fcd617"
}

API Problem (v1.1.0)

API problem or error, as per RFC 7807 application/problem+json.

Properties

NameDescription
type string(uri-reference)
A URI reference (RFC3986) that identifies the problem type. If present, this is the URL of human-readable HTML documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
title string
A short, human-readable summary of the problem type. The title is usually the same for all problem with the same type.
status integer(int32)
The HTTP status code for this occurrence of the problem.
minimum: 100
maximum: 599
detail string
A human-readable explanation specific to this occurrence of the problem.
instance string(uri-reference)
A URI reference that identifies the specific occurrence of the problem. This is the URI of an API resource that the problem is related to, with a unique error correlation ID URI fragment
id string: readOnlyResourceId
The unique identifier for this problem. This is an immutable opaque string.
read-only
minLength: 6
maxLength: 48
pattern: ^[-_:.~$a-zA-Z0-9]+$
occurredAt string(date-time): readOnlyTimestamp
The timestamp when the problem occurred, in RFC 3339 date-time YYYY-MM-DDThh:mm:ss.sssZ format, UTC.
read-only
minLength: 20
maxLength: 30
problems array: [apiProblem]
Optional root-causes if there are multiple problems in the request or API call processing.
attributes object
Additional optional attributes related to the problem. This data conforms to the schema associated with the error type.

dateRange

"2022-05-19"

Date Range (v1.0.0)

A date range, supporting inclusive or exclusive endpoints. Dates ranges use dates expressed in YYYY-MM-DD RFC 3339 date format. The value may have the following forms:

Type: string
pattern: ^\d{4}-\d{2}-\d{2}|([([)]])$

monetaryValue

"3456.78"

Monetary Value (v1.0.0)

The monetary value, supporting only positive amounts. The numeric value is represented as a string so that it can be exact with no loss of precision.
The schema monetaryValue was added on version 0.4.0 of the API.

Type: string
pattern: ^(0|[1-9][0-9]*).[0-9][0-9]$

newTransfer

{
  "amount": "275.00",
  "memo": "Cover check for car repair",
  "sourceAccount": {
    "id": "bd9b7af2-6f9b",
    "location": "internal"
  },
  "targetAccount": {
    "id": "88b1ca3e-d0f3",
    "location": "internal"
  },
  "schedule": {
    "scheduledOn": "2022-06-28",
    "frequency": "once"
  }
}

New Transfer (v2.1.1)

Representation used to create a new transfer.

Properties

NameDescription
schedule object: transferSchedule (required)
When the transfer should occur and any recurrence.
amount string: monetaryValue (required)
The amount of money to transfer between accounts.
pattern: ^(0|[1-9][0-9]*)\.[0-9][0-9]$
sourceAccount object: transferAccountReference (required)
The source account where the funds are withdrawn.
destinationAccount object: transferAccountReference (required)
The destination account where the funds are deposited.
memo string
A customer-defined memo to describe the transfer.
maxLength: 80

problemResponse

{
  "id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
  "type": "https://production.api.apiture.com/errors/noSuchAccount/v1.0.0",
  "title": "Account Not Found",
  "status": 422,
  "occurredAt": "2022-04-25T12:42:21.375Z",
  "detail": "No account exists for the given account reference",
  "instance": "https://production.api.apiture.com/banking/transfers/bb709151-575041fcd617"
}

Problem Response (v0.3.0)

API problem or error response, as per RFC 7807 application/problem+json.

Properties

NameDescription
type string(uri-reference)
A URI reference (RFC3986) that identifies the problem type. If present, this is the URL of human-readable HTML documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
title string
A short, human-readable summary of the problem type. The title is usually the same for all problem with the same type.
status integer(int32)
The HTTP status code for this occurrence of the problem.
minimum: 100
maximum: 599
detail string
A human-readable explanation specific to this occurrence of the problem.
instance string(uri-reference)
A URI reference that identifies the specific occurrence of the problem. This is the URI of an API resource that the problem is related to, with a unique error correlation ID URI fragment
id string: readOnlyResourceId
The unique identifier for this problem. This is an immutable opaque string.
read-only
minLength: 6
maxLength: 48
pattern: ^[-_:.~$a-zA-Z0-9]+$
occurredAt string(date-time): readOnlyTimestamp
The timestamp when the problem occurred, in RFC 3339 date-time YYYY-MM-DDThh:mm:ss.sssZ format, UTC.
read-only
minLength: 20
maxLength: 30
problems array: [apiProblem]
Optional root-causes if there are multiple problems in the request or API call processing.
attributes object
Additional optional attributes related to the problem. This data conforms to the schema associated with the error type.

productType

"savings"

Product Type (v2.0.0)

The type (or category) of bank account.

productType strings may have one of the following enumerated values:

ValueDescription
savingsSavings:

Savings Account

checkingChecking:

Checking Account

cdCD:

Certificate of Deposit Account

iraIRA:

Individual Retirement Account

loanLoan:

Loan Account

creditCardCredit Card:

Credit Card Account

Type: string
enum values: savings, checking, cd, ira, loan, creditCard

readOnlyResourceId

"string"

Read-only Resource Identifier (v1.0.0)

The unique, opaque system-assigned identifier for a resource. This case-sensitive ID is also used in URLs as path parameters or in other properties or parameters that reference a resource by ID rather than URL. Resource IDs are immutable.

Type: string
read-only
minLength: 6
maxLength: 48
pattern: ^[-_:.~$a-zA-Z0-9]+$

readOnlyTimestamp

"2021-10-30T19:06:04.250Z"

Read-Only Timestamp (v1.0.0)

A readonly or derived timestamp (an instant in time) formatted in RFC 3339 date-time UTC format: YYYY-MM-DDThh:mm:ss.sssZ.
The schema readOnlyTimestamp was added on version 0.4.0 of the API.

Type: string(date-time)
read-only
minLength: 20
maxLength: 30

resourceId

"string"

Resource Identifier (v1.0.0)

The unique, opaque system identifier for a resource. This case-sensitive ID is also used as path parameters in URLs or in other properties or parameters that reference a resource by ID rather than URL.

Type: string
minLength: 6
maxLength: 48
pattern: ^[-_:.~$a-zA-Z0-9]+$

transfer

{
  "amount": "275.00",
  "sourceAccount": {
    "id": "bd9b7af2-6f9b",
    "label": "Premiere Checking *6789",
    "type": "checking",
    "location": "internal"
  },
  "targetAccount": {
    "id": "88b1ca3e-d0f3",
    "label": "Personal Savings *4567",
    "type": "savings",
    "location": "internal"
  },
  "schedule": {
    "scheduledOn": "2022-06-28",
    "frequency": "once"
  },
  "processedAt": "2022-06-27T021:00:00.000Z",
  "updatedBy": "James Bond",
  "id": "0399abed-fd3d",
  "memo": "Cover check for car repair"
}

Transfer (v2.2.1)

Representation of a transfer resource.

Properties

NameDescription
schedule object: transferSchedule (required)
When the transfer should occur and any recurrence.
amount string: monetaryValue (required)
The amount of money to transfer between accounts.
pattern: ^(0|[1-9][0-9]*)\.[0-9][0-9]$
sourceAccount object: transferAccountReference (required)
The source account where the funds are withdrawn.
destinationAccount object: transferAccountReference (required)
The destination account where the funds are deposited.
memo string
A customer-defined memo to describe the transfer.
maxLength: 80
createdAt string(date-time)
The date-time when this resource was created, in RFC 3339 date-time YYYY-MM-DDThh:mm:ss.sssZ format, UTC. This is derived and immutable.
read-only
updatedAt string(date-time)
The date-time when the resource was last updated, in RFC 3339 date-time YYYY-MM-DDThh:mm:ss.sssZ format, UTC. This is derived and immutable.
read-only
id string: readOnlyResourceId (required)
The unique identifier for this transfer resource. This is an immutable opaque string.
read-only
minLength: 6
maxLength: 48
pattern: ^[-_:.~$a-zA-Z0-9]+$
state string: transferState (required)
The state of this transfer resource.
read-only
enum values: pendingApproval, scheduled, processing, processed, suspended
processedAt string(date-time)
The date the transfer was processed.
read-only
updatedBy string
The full name of the banking customer who last updated the transfer.
read-only
maxLength: 48

transferAccountReference

{
  "id": "e821ce54-c715",
  "label": "Premiere Checking *6789",
  "type": "checking",
  "location": "internal"
}

Transfer Account Reference (v2.0.0)

A reference to a banking account used within an account to account transfer. This object may be set from an account's account.reference object.

Properties

NameDescription
id string: resourceId (required)
The unique ID of a banking account.
minLength: 6
maxLength: 48
pattern: ^[-_:.~$a-zA-Z0-9]+$
label string
The human-readable label for this account. This is either the nickname (if assigned for the current customer), or the product.label concatenated with the maskedNumber.
read-only
maxLength: 80
type string: productType
The product type of the account.
enum values: savings, checking, cd, ira, loan, creditCard
location string: accountLocation
Indicates where an account is held.
enum values: internal, external, outside

transferFrequency

"once"

Transfer Frequency (v1.0.0)

For recurring transfers, the interval at which the money movement recurs.

transferFrequency strings may have one of the following enumerated values:

ValueDescription
onceonce:

Transfer does not repeat

dailydaily:

Repeat daily on business days

weeklyweekly:

Repeat weekly

biweeklybiweekly:

Repeat every two weeks (26 times a year)

semimonthlysemimonthly:

Repeat twice a month (24 times a year)

monthlymonthly:

Repeat monthly

monthlyFirstDaymonthlyFirstDay:

Repeat on the first business day of the month

monthlyLastDaymonthlyLastDay:

Repeat on the last business day of the month

bimonthlybimonthly:

Repeat every other month

quarterlyquarterly:

Repeat quarterly (four times a year)

semiyearlysemiyearly:

Repeat every six months (twice a year)

yearlyyearly:

Repeat once every year

Type: string
enum values: once, daily, weekly, biweekly, semimonthly, monthly, monthlyFirstDay, monthlyLastDay, bimonthly, quarterly, semiyearly, yearly

transferItem

{
  "amount": "275.00",
  "sourceAccount": {
    "id": "bd9b7af2-6f9b"
  },
  "targetAccount": {
    "id": "88b1ca3e-d0f3",
    "label": "Personal Savings *4567",
    "type": "savings"
  },
  "schedule": {
    "scheduledOn": "2022-06-28",
    "frequency": "once"
  },
  "processedAt": "2022-06-27T021:00:00.000Z",
  "updatedBy": "James Bond"
}

Transfer Item (v2.2.1)

Summary representation of a transfer resource in transfers collections. To fetch the full representation of this transfer, use the getTransfer operation, passing this item's id field as the transferId path parameter.

Properties

NameDescription
schedule object: transferSchedule (required)
When the transfer should occur and any recurrence.
amount string: monetaryValue (required)
The amount of money to transfer between accounts.
pattern: ^(0|[1-9][0-9]*)\.[0-9][0-9]$
sourceAccount object: transferAccountReference (required)
The source account where the funds are withdrawn.
destinationAccount object: transferAccountReference (required)
The destination account where the funds are deposited.
memo string
A customer-defined memo to describe the transfer.
maxLength: 80
createdAt string(date-time)
The date-time when this resource was created, in RFC 3339 date-time YYYY-MM-DDThh:mm:ss.sssZ format, UTC. This is derived and immutable.
read-only
updatedAt string(date-time)
The date-time when the resource was last updated, in RFC 3339 date-time YYYY-MM-DDThh:mm:ss.sssZ format, UTC. This is derived and immutable.
read-only
id string: readOnlyResourceId (required)
The unique identifier for this transfer resource. This is an immutable opaque string.
read-only
minLength: 6
maxLength: 48
pattern: ^[-_:.~$a-zA-Z0-9]+$
state string: transferState (required)
The state of this transfer resource.
read-only
enum values: pendingApproval, scheduled, processing, processed, suspended
processedAt string(date-time)
The date the transfer was processed.
read-only
updatedBy string
The full name of the banking customer who last updated the transfer.
read-only
maxLength: 48

transferPatch

{
  "amount": "275.00",
  "targetAccount": {
    "id": "88b1ca3e-d0f3"
  },
  "schedule": {
    "scheduledOn": "2022-06-28"
  }
}

Transfer Patch Request (v2.1.1)

Representation used to patch an existing transfer using the JSON Merge Patch format and processing rules.

Properties

NameDescription
schedule object: transferSchedule
When the transfer should occur and any recurrence.
amount string: monetaryValue
The amount of money to transfer between accounts.
pattern: ^(0|[1-9][0-9]*)\.[0-9][0-9]$
sourceAccount object: transferAccountReference
The source account where the funds are withdrawn.
destinationAccount object: transferAccountReference
The destination account where the funds are deposited.
memo string
A customer-defined memo to describe the transfer.
maxLength: 80

transferRecurrenceType

"fixed"

Transfer Recurrence Type (v1.0.0)

Describes whether the transfer amount in the transfer varies or is fixed when the transfer recurs. This is ignored if the transfer frequency is once.

transferRecurrenceType strings may have one of the following enumerated values:

ValueDescription
fixedFixed:

The transfer amounts are the same each time a transfer recurs

variablevariable:

The transfer amounts vary and must be entered/verified each time a transfer recurs

Type: string
enum values: fixed, variable

transferSchedule

{
  "scheduledOn": "2022-06-28",
  "frequency": "once"
}

Transfer Schedule (v1.1.1)

The scheduled date when the transfer should be completed, the recurrence, if any, and other derived dates based on the scheduled date.

For recurring transfer schedules, endsOn, count, and amountLimit are mutually exclusive.

Properties

NameDescription
scheduledOn string(date)
The transfer's target completion date, in YYYY-MM-DD RFC 3339 date format.
recurrenceType string: transferRecurrenceType

Describes whether the transfer amount in the transfer varies or is fixed when the transfer recurs. This is ignored if the transfer frequency is once.

transferRecurrenceType strings may have one of the following enumerated values:

ValueDescription
fixedFixed:

The transfer amounts are the same each time a transfer recurs

variablevariable:

The transfer amounts vary and must be entered/verified each time a transfer recurs


enum values: fixed, variable
frequency string: transferFrequency (required)

For recurring transfers, the interval at which the money movement recurs.

transferFrequency strings may have one of the following enumerated values:

ValueDescription
onceonce:

Transfer does not repeat

dailydaily:

Repeat daily on business days

weeklyweekly:

Repeat weekly

biweeklybiweekly:

Repeat every two weeks (26 times a year)

semimonthlysemimonthly:

Repeat twice a month (24 times a year)

monthlymonthly:

Repeat monthly

monthlyFirstDaymonthlyFirstDay:

Repeat on the first business day of the month

monthlyLastDaymonthlyLastDay:

Repeat on the last business day of the month

bimonthlybimonthly:

Repeat every other month

quarterlyquarterly:

Repeat quarterly (four times a year)

semiyearlysemiyearly:

Repeat every six months (twice a year)

yearlyyearly:

Repeat once every year


enum values: once, daily, weekly, biweekly, semimonthly, monthly, monthlyFirstDay, monthlyLastDay, bimonthly, quarterly, semiyearly, yearly
endsOn string(date)
The optional date when the recurring transfer schedule ends, in YYYY-MM-DD RFC 3339 date format. Subsequent recurring transfers may be scheduled up to and including this date, but not after. This property is ignored if frequency is once.
count integer
For recurring schedules (frequency is not once), this is the total number of transfers to make, including the first transfer. This property is ignored if frequency is once.
Default: 1
minimum: 1
amountLimit integer
For recurring schedules (frequency is not once), this is the total dollar amount limit including the first transfer. No transfers are scheduled if they would exceed this amount. This property is ignored if frequency is once.
Default: 1
minimum: 1

transferState

"pendingApproval"

Transfer State (v1.0.0)

The state of a transfer resource.

Type: string
enum values: pendingApproval, scheduled, processing, processed, suspended

transfers

{
  "start": "d1b48af913464aa49fcb07065dcc0616",
  "limit": 10,
  "nextPage_url": "https://production.api.apiture.com/transfers/transfers?start=6117a4dcefb841cab7316cef1ac8b58c&limit=10",
  "items": [
    {
      "id": "0399abed-fd3d",
      "amount": "275.00",
      "memo": "Cover check for car repair",
      "sourceAccount": {
        "id": "bd9b7af2-6f9b",
        "label": "Premiere Checking *6789",
        "type": "checking",
        "location": "internal"
      },
      "targetAccount": {
        "id": "88b1ca3e-d0f3",
        "label": "Personal Savings *4567",
        "type": "savings",
        "location": "internal"
      },
      "schedule": {
        "scheduledOn": "2022-06-28",
        "frequency": "once"
      }
    },
    {
      "id": "d62c0701-0d74",
      "amount": "100.00",
      "memo": "cover check for school books",
      "sourceAccount": {
        "id": "bd9b7af2-6f9b",
        "label": "Checking *6789",
        "type": "checking",
        "location": "internal"
      },
      "targetAccount": {
        "id": "c8396f59-624b",
        "label": "Checking *3456",
        "type": "checking",
        "location": "internal"
      },
      "schedule": {
        "scheduledOn": "2022-06-28",
        "frequency": "once"
      }
    }
  ]
}

Transfer Collection (v2.2.1)

Collection of transfers. The items in the collection are ordered in the items array. The response object may contain the nextPage_url pagination link..

Properties

NameDescription
limit integer(int32) (required)
The number of items requested for this page response. The length of the items array may be less that limit.
Default: 100
minimum: 0
nextPage_url string(uri-reference)
The URL of the next page of resources. If this URL is omitted, there are no more resources in the collection.
read-only
maxLength: 8000
start string
The opaque cursor that specifies the starting location of this page of items.
maxLength: 256
items array: [transferItem] (required)
An array containing a page of transfer items.