Shell HTTP JavaScript Node.JS Ruby Python Java Go

Transfers v0.13.7

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

Clients can use the Transfers API to schedule transfer requests to move funds from one account to another. Transfers are one-time transfers or recurring transfers, based on the transfer's schedule. To schedule a new transfer, use the createScheduledTransfer operation. Use the getScheduledTransfers operation to list the user's scheduled transfers. Scheduled transfers which have been processed are automatically removed from /scheduledTransfers. The getPastTransfers operation returns the history of processed or canceled transfers.

Error Types

Error responses in this API may have one of the type values described below. See Errors for more information on error responses and error types.

pastTransferAccessDenied

Description: The credentials supplied in the request are insufficient to grant access.
Remediation: Check the supplied credentials for validity.

scheduledTransferAccessDenied

Description: The credentials supplied in the request are insufficient to grant access.
Remediation: Check the supplied credentials for validity.

configurationAccessDenied

Description: The credentials supplied in the request are insufficient to grant access.
Remediation: Check the supplied credentials for validity.

invalidAccountId

Description: No Accounts were found for the specified accountId.
Remediation: Check to make sure that the supplied accountId corresponds to an apiture account resource.

sourceAndTargetAccountsAreSame

Description: Source account and target account are the same account.
Remediation: Check to make sure that source account is different from target account.

endDateIsEarlierThanStartDate

Description: Scheduled transfer end date is earlier than start date.
Remediation: Check to make sure that your scheduled end date is later than scheduled start date.

invalidFundingTransferStateChange

Description: A transfer that is funding the opening of a new account cannot be canceled or deleted.
Remediation: Ensure the transfer you are trying to change is not an account funding transfer.

invalidScheduledTransferId

Description: No scheduledTransfers were found for the specified scheduledTransferId.
Remediation: Check to make sure that the supplied scheduledTransferId corresponds to an apiture scheduledTransfer resource.

invalidPastTransferId

Description: No pastTransfers were found for the specified pastTransferId.
Remediation: Check to make sure that the supplied pastTransferId corresponds to an apiture pastTransfer resource.

invalidGroupName

Description: No configurationGroup was found for the specified groupName.
Remediation: Check to make sure that the supplied groupName corresponds to an apiture transfer configuration group resource.

invalidValueName

Description: No configurationName was found for the specified valueName.
Remediation: Check to make sure that the supplied valueName corresponds to an apiture transfer configuration value resource.

invalidConfigurationGroup

Description: The request body did not conform to the schema for this configuration group.
Remediation: Check the schema for the configuration group and resubmit the operation.

invalidConfigurationValue

Description: The request body did not conform to the schema for this configuration group value.
Remediation: Check the schema for the configuration group value and resubmit the operation.

invalidScheduledTransfer

Description: The request to create a scheduled transfer was not valid.
Remediation: Check to make sure the schedule exists and that the start date also exists. Also make sure the start date is a future date or time.

invalidScheduleStart

Description: The requested transfer start date is an unprocessable date or the requested start date is today and the cutoff time has passed.
Remediation: Check the transfers configuration values for both unprocessable days and cutoff time.

invalidFirstLastTransfer

Description: first and last may not both be true when scheduling a recurring transfer.
Remediation: Set at least one of first or last to false and resubmit the operation.

invalidDate

Description: The start date that was specified in the transfer is not valid.
Remediation: Resubmit the operation with a valid start date in the ISO 8601 format.

inactiveAccount

Description: The given account is not currently active.
Remediation: Make sure the source and target accounts are active accounts and resubmit the operation.

invalidExternalAccount

Description: The external account that was specified in transfer request is invalid, as it either does not exist or does not contain links.
Remediation: Resubmit the operation with an existing external account that contains links.

externalAccountIsNotVerified

Description: The external account in the transfer request is not verified.
Remediation: Resubmit the operation with a verified external account in the request.

missingAccountInTransfer

Description: Either the source, target, or both accounts are missing in the transfer request.
Remediation: Resubmit the request with a valid source and target account in the links.

undefinedTransferId

Description: The transferId that was passed into the update was undefinedTransferIdBadRequest.
Remediation: Resubmit the operation with a transferId.

transferDailyLimitExceeded

Description: The value of the transfer exceeds the daily transfer limit allowed for this user.
Remediation: Resubmit the request with a valid amount.

transferSingleLimitExceeded

Description: The value of the transfer exceeds the single transfer limit allowed for this user.
Remediation: Resubmit the request with a valid amount.

transferCoreLimitExceeded

Description: The value of the transfer exceeds a transfer limit allowed by the banking core.
Remediation: Resubmit the request with a valid amount.

transferCannotBeToAndFromExternal

Description: A transfer cannot take place between two external accounts.
Remediation: Ensure that the source and target accounts in the request are correct, and resubmit with at least one internal account.

malformedAccountUri

Description: The supplied accountUri was malformed.
Remediation: Check to make sure that the supplied accountUri corresponds to an apiture account resource.

malformedSourceAccountUri

Description: The supplied sourceAccountUri was malformed.
Remediation: Check to make sure that the supplied sourceAccountUri corresponds to an apiture account resource.

malformedTargetAccountUri

Description: The supplied targetAccountUri was malformed.
Remediation: Check to make sure that the supplied targetAccountUri corresponds to an apiture account resource.

malformedTransferUri

Description: The supplied scheduledTransferUri was malformed.
Remediation: Check to make sure that the supplied ScheduledTransferUri corresponds to an apiture transfer resource and the uri is in the correct format.

malformedRequestBody

Description: The supplied request body was malformed.
Remediation: Check to make sure that your request body exists and that it does not contain syntax errors.

missingAccountInformationForTransfer

Description: The linked source and target accounts are missing fields required to make a transfer.
Remediation: Update the accounts to have valid values for all required fields.

The attributes object in the error may have the following properties:

Property Type Description
requiredFields [undefined] A list of the required fields that must be passed in the createScheduledTransfer request.

malformedEveryField

Description: Required field "schedule.every" must conform to the ISO 8601 standard for durations.
Remediation: Resubmit the operation with a ISO 8601 valid date.

resumeTransferStateInvalidState

Description: The specified scheduled transfer is in a state that does not allow resuming. Only suspended transfers can be resumed.
Remediation: Check the state of the transfer and the applicable allowed state transitions in the Transfers API documentation.

The attributes object in the error may have the following properties:

Property Type Description
requiredStates [string] The transfer must be in one of these states in order to perform the requested action.
Example: suspended

updateTransferInvalidState

Description: The specified scheduled transfer is in a state that does not allow this action.
Remediation: Check the state of the transfer and the applicable allowed state transitions in the Transfers API documentation.

transferCannotBeSuspended

Description: The transfer cannot be suspended due to constraints in the banking core.
Remediation: Cancel the recurring transfer and create a new one.

duplicateTransfer

Description: The given transfer is a duplicate of a transfer that already exists.
Remediation: Check to make sure that the transfer does not already exist. If this is intentional, resubmit with a different transfer description.

ifMatchHeaderMissing

Description: Precondition Required. The request did not include the required if-Match header.
Remediation: Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.

ifMatchHeaderDoesntMatch

Description: The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Remediation: Resubmit the operation, supplying the value of the ETag and the most recent state of the resource.

invalidTransferState

Description: A transfers state can only be patched if it is in a scheduled, recurring, or suspended state.
Remediation: Check the state of the transfer and the applicable allowed state transitions in the Transfers API documentation.

setStatusFailed

Description: Could not resolve scheduled transfer resource set status.
Remediation: Perform a get to make sure the state update did not occur. Resubmit the operation, if it did not.

updateTransferFailed

Description: A server issue occurred while updating the transfer.
Remediation: Perform a get to make sure the update did not occur. Resubmit the operation, if it did not.

coreProcessing

Description: A core processing error occurred during the operation.
Remediation: Check the error attributes for details.

updateTransferPastCutoff

Description: A transfer scheduled for today cannot be updated past the cutoff time.
Remediation: Check the scheduled start date for this transfer and the configured cutoff time.

transferAmountBelowMinimum

Description: The transfer amount must be greater than or equal to any stated minimums.
Remediation: A transfer must have an amount that is greater than 0.00, check your submitted amount.

The attributes object in the error may have the following properties:

Property Type Description
minimum string The minimum transfer amount in whole dollars. The numeric value is represented as a string so that it can be exact with no loss of precision.
Example: 0.00

Download OpenAPI Definition (YAML)

Base URLs:

Terms of service

Email: Apiture Web: Apiture

Authentication

Scope Scope Description
banking/read Read access to accounts and account-related resources such as transfers and transactions.
banking/write Write (update) access to accounts and account-related resources such as transfers and transactions.
banking/delete Delete access to deletable accounts and account-related resources such as transfers.
banking/readBalance Read access to account balances. This must be granted in addition to the banking/read scope in order to view balances, but is included in the banking/full scope.
banking/full Full access to accounts and account-related resources such as transfers and transactions.
admin/read Read access to system configuration.
admin/write Write (update) access to system configuration.
admin/full Full access to system configuration.

Scheduled Transfer

Scheduled transfers from a source account to a target account

getScheduledTransfers

Code samples

# You can also use wget
curl -X GET /transfers/scheduledTransfers \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /transfers/scheduledTransfers HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

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

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

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

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/scheduledTransfers',
{
  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',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/transfers/scheduledTransfers', params={

}, headers = headers)

print r.json()

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

package main

import (
       "bytes"
       "net/http"
)

func main() {

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

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

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

Return a collection of scheduled transfers

GET /scheduledTransfers

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

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first transfer item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of transfer representations to return in this page.
Default: 100
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
This collection may be sorted by following properties:
state
name
createdAt
start
filter
(query)
string
Optional filter criteria. See filtering.
This collection may be filtered by following properties and functions:
• Property account using functions eq, in
• Property sourceAccount using functions eq, in
• Property targetAccount using functions eq, in
• Property state using functions eq, ne, in
• Property name using functions eq, ne, lt, le, gt, ge, startsWith, endsWith, contains, search
• Property _id using functions eq, in
q
(query)
string
Optional search string. See searching.
state
(query)
array[string]
Subset the transfers collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending matches only items whose state is pending; ?state=removed|inactive matches items whose state is removed or inactive. This is combined with an implicit and with other filters if they are used. See filtering.
name
(query)
string
Subset the transfers collection to those with this name value. Use | to separate multiple values. For example, ?name=Bartell will match only items whose name is Bartell; ?name=Bartell|kirsten will match items whose name is Bartell or kirsten. This is combined with an implicit and with other filters if they are used. See filtering.
account
(query)
string
Filter the result to transfers from or to the account named by this parameter. The value is the _id (not the account number) of an external or internal account. This parameter is ignored if both ?sourceAccount= and ?targetAccount= are supplied. For security purposes, note that this is not the same as the account number.
sourceAccount
(query)
string
Filter the result to transfers from the account named by this parameter. The value is the _id (not the account number) of the source external or internal account. For security purposes, note that this is not the same as the account number.
targetAccount
(query)
string
Filter the result to transfers to the account named by this parameter. The value is the _id (not the account number) of the target external or internal account. For security purposes, note that this is not the same as the account number.

Try It

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/transfers/scheduledTransfers/v1.1.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "transfers",
  "_links": {
    "self": {
      "href": "/transfers/scheduledTransfers?start=10&limit=10"
    },
    "first": {
      "href": "/transfers/scheduledTransfers?start=0&limit=10"
    },
    "next": {
      "href": "/transfers/scheduledTransfers?start=20&limit=10"
    },
    "collection": {
      "href": "/transfers/scheduledTransfers"
    }
  },
  "_embedded": {
    "items": {
      "anyOf": [
        {
          "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
          "_profile": "https://api.apiture.com/schemas/transfers/summaryScheduledTransfer/v1.0.0/profile.json",
          "amount": {
            "value": "345.50",
            "currency": "USD"
          },
          "description": "Car payment",
          "state": "recurring",
          "schedule": {
            "start": "2018-02-05",
            "count": 3,
            "every": "P1M",
            "end": "2021-04-05"
          },
          "_links": {
            "apiture:source": {
              "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
            },
            "apiture:target": {
              "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
            },
            "apiture:transactions": {
              "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
            },
            "self": {
              "href": "/transfers/scheduledTransfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
            }
          }
        },
        {
          "_id": "a3bbba3c-d26b-497d-87b7-09eb47b24d77",
          "_profile": "https://api.apiture.com/schemas/transfers/summaryScheduledTransfer/v1.0.0/profile.json",
          "amount": {
            "value": "120.0",
            "currency": "USD"
          },
          "description": "Monthly allowance for Suzy's college expenses and meals",
          "state": "recurring",
          "schedule": {
            "start": "2018-08-01",
            "count": 24,
            "every": "P1M",
            "end": "2020-05-15"
          },
          "_links": {
            "apiture:source": {
              "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
            },
            "apiture:target": {
              "href": "/accounts/externalAccounts/4fda6275-0a3b-49ad-ad12-5ebcd7013362"
            },
            "apiture:transactions": {
              "href": "/transaction?transfer=/transfers/transfers/a3bbba3c-d26b-497d-87b7-09eb47b24d77"
            },
            "self": {
              "href": "/transfers/scheduledTransfers/a3bbba3c-d26b-497d-87b7-09eb47b24d77"
            }
          }
        }
      ]
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: scheduledTransfers
StatusDescription
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

createScheduledTransfer

Code samples

# You can also use wget
curl -X POST /transfers/scheduledTransfers \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /transfers/scheduledTransfers HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/scheduledTransfers',
  method: 'post',

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

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://api.apiture.com/schemas/transfers/createScheduledTransfer/v1.0.0/profile.json",
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "initialFunding": false,
  "schedule": {
    "start": "2018-02-05",
    "maximumCount": 36,
    "every": "P1M",
    "end": "2021-04-05"
  },
  "_links": {
    "apiture:source": {
      "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
    },
    "apiture:target": {
      "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
    },
    "apiture:creator": {
      "href": "/users/users/d076e102-facf-46e2-8ecf-bcdb531cd9e6"
    }
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

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

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/transfers/scheduledTransfers',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.post('/transfers/scheduledTransfers', params={

}, headers = headers)

print r.json()

URL obj = new URL("/transfers/scheduledTransfers");
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/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

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

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

Create a new scheduled transfer request

POST /scheduledTransfers

This operation adds either a new one-time or a recurring transfer, depending on the content of the embedded schedule. The request includes the amount of the transfer in the body, and the source and target accounts in the request's _links via the link relations apiture:source and apiture:target. The accounts must be active and available for transfers and the amount must be in the allowed transfer range.

If the request's transfer date (schedule.start) is the current day, the financial institution is processing transfers on that day, and the time is before the financial institution's transfer processing cutoff time, internal transfers will be processed as soon as possible and the transfer state will change to processing and then completed. If the request's transfer date (schedule.start) is the current day and the time is past the cutoff time, the transfer will be processed on the next processing day. The cutoff time is available as cutoffTime via this service's basic configuration values GET /transfers/configurations/groups/basic/values; those values are defined by the JSON schema GET /transfers/configurations/groups/basic/schema.

If the transfer is scheduled for a future date that is not a valid transfer processing day, the request fails with a 400 error. The holidays and other non-processing days are available via this service's calendar configuration values GET /transfers/configurations/groups/calendar/values; those values are defined by the JSON schema GET /transfers/configurations/groups/calendar/schema.

The service will reject duplicate requests, defined by a request that exactly matches an existing transfer (same amount, schedule, description, source and target accounts), returning a 409 Conflict status. To schedule a duplicate transfer with the same amount, schedule, and accounts, change at least the description.

Scheduled transfers will be deleted automatically at some point after they have completed (typically 7 days), up until which they are available with a state of completed if successful or failed if not.

Body parameter

{
  "_profile": "https://api.apiture.com/schemas/transfers/createScheduledTransfer/v1.0.0/profile.json",
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "initialFunding": false,
  "schedule": {
    "start": "2018-02-05",
    "maximumCount": 36,
    "every": "P1M",
    "end": "2021-04-05"
  },
  "_links": {
    "apiture:source": {
      "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
    },
    "apiture:target": {
      "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
    },
    "apiture:creator": {
      "href": "/users/users/d076e102-facf-46e2-8ecf-bcdb531cd9e6"
    }
  }
}

Parameters

Parameter Description
body
(body)
createScheduledTransfer (required)
The data necessary to create a new transfer.

Try It

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/transfers/scheduledTransfer/v1.1.0/profile.json",
  "createdBy": "lucille-4700",
  "createdAt": "2018-05-08T13:37:57.375Z",
  "modifiedBy": "lucille-4700",
  "modifiedAt": "2018-05-18T16:42:57.000Z",
  "_links": {
    "self": {
      "href": "/transfers/scheduledTransfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:source": {
      "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
    },
    "apiture:target": {
      "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
    },
    "apiture:creator": {
      "href": "/users/users/d076e102-facf-46e2-8ecf-bcdb531cd9e6"
    },
    "apiture:transactions": {
      "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "transactions": {
      "start": 0,
      "count": 3,
      "items": {
        "anyOf": [
          {
            "_id": "da8682e3-cc0b-4a1a-b8d2-8ce4dc45bf36",
            "occurredAt": "2018-02-05T11:10:00.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "a847c5c7-4a34-4464-b514-5ca1680cc00d",
            "occurredAt": "2018-03-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "d9ab0002-2cbb-4a4c-a01f-c3ce3ad20782",
            "occurredAt": "2018-04-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          }
        ]
      }
    },
    "source": {
      "_id": "34f8bec8-3939-4b7e-9ad5-10ee059ab250",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "Personal Savings",
      "productName": "Basic Personal Savings",
      "type": "Personal Savings",
      "subtype": "Basic Personal Savings",
      "state": "active",
      "balance": {
        "current": "3450.30",
        "available": "3450.30",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/34f8bec8-3939-4b7e-9ad5-10ee059ab250"
        }
      }
    },
    "target": {
      "_id": "c9839d60-73e5-47ba-9676-ca8138e9494d",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "My Basic Checking",
      "productName": "Basic Personal Checking",
      "type": "Personal Checking",
      "subtype": "Basic Personal Checking",
      "state": "active",
      "balance": {
        "current": "450.12",
        "available": "450.12",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/c9839d60-73e5-47ba-9676-ca8138e9494d"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
      }
    }
  },
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "state": "recurring",
  "schedule": {
    "start": "2018-02-05",
    "count": 3,
    "every": "P1M",
    "end": "2021-04-05"
  }
}

Responses

StatusDescription
201 Created
Created
Schema: scheduledTransfer
StatusDescription
404 Not Found

Not Found. There is no such resource at the specified {Id} The _error field in the response will contain details about the request error.

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

Schema: errorResponse
StatusDescription
409 Conflict

Conflict. A conflict can occur for several reasons:

  • A transfer that matches the request already exists. The service does not allow duplicate transfer requests, which probably reflect accidental duplicate POST operations from the client.
  • The source or target accounts do not allow the transfer.

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

Schema: errorResponse

Response Headers

StatusDescription
201 Location string uri
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme://host
201 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 the resource.

getScheduledTransfer

Code samples

# You can also use wget
curl -X GET /transfers/scheduledTransfers/{scheduledTransferId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /transfers/scheduledTransfers/{scheduledTransferId} HTTP/1.1

Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/scheduledTransfers/{scheduledTransferId}',
  method: 'get',

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

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

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/scheduledTransfers/{scheduledTransferId}',
{
  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',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/transfers/scheduledTransfers/{scheduledTransferId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/transfers/scheduledTransfers/{scheduledTransferId}', params={

}, headers = headers)

print r.json()

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

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

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

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

Fetch a representation of this transfer

GET /scheduledTransfers/{scheduledTransferId}

Return a HAL representation of this transfer resource. To also receive the full account number when fetching an account, include the ?unmasked=true option. When linking an external account, the full account number should be in the accountNumbers.full property in the request.

Parameters

Parameter Description
scheduledTransferId
(path)
string (required)
The unique identifier of this scheduled transfer. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.
unmasked
(query)
boolean
When requesting a transfer, the full account number of the source and target accounts 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

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/transfers/scheduledTransfer/v1.1.0/profile.json",
  "createdBy": "lucille-4700",
  "createdAt": "2018-05-08T13:37:57.375Z",
  "modifiedBy": "lucille-4700",
  "modifiedAt": "2018-05-18T16:42:57.000Z",
  "_links": {
    "self": {
      "href": "/transfers/scheduledTransfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:source": {
      "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
    },
    "apiture:target": {
      "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
    },
    "apiture:creator": {
      "href": "/users/users/d076e102-facf-46e2-8ecf-bcdb531cd9e6"
    },
    "apiture:transactions": {
      "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "transactions": {
      "start": 0,
      "count": 3,
      "items": {
        "anyOf": [
          {
            "_id": "da8682e3-cc0b-4a1a-b8d2-8ce4dc45bf36",
            "occurredAt": "2018-02-05T11:10:00.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "a847c5c7-4a34-4464-b514-5ca1680cc00d",
            "occurredAt": "2018-03-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "d9ab0002-2cbb-4a4c-a01f-c3ce3ad20782",
            "occurredAt": "2018-04-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          }
        ]
      }
    },
    "source": {
      "_id": "34f8bec8-3939-4b7e-9ad5-10ee059ab250",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "Personal Savings",
      "productName": "Basic Personal Savings",
      "type": "Personal Savings",
      "subtype": "Basic Personal Savings",
      "state": "active",
      "balance": {
        "current": "3450.30",
        "available": "3450.30",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/34f8bec8-3939-4b7e-9ad5-10ee059ab250"
        }
      }
    },
    "target": {
      "_id": "c9839d60-73e5-47ba-9676-ca8138e9494d",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "My Basic Checking",
      "productName": "Basic Personal Checking",
      "type": "Personal Checking",
      "subtype": "Basic Personal Checking",
      "state": "active",
      "balance": {
        "current": "450.12",
        "available": "450.12",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/c9839d60-73e5-47ba-9676-ca8138e9494d"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
      }
    }
  },
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "state": "recurring",
  "schedule": {
    "start": "2018-02-05",
    "count": 3,
    "every": "P1M",
    "end": "2021-04-05"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: scheduledTransfer
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found

Not Found. There is no such resource at the specified {Id} The _error field in the response will contain details about the request error.

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

Schema: errorResponse

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 transfer resource.

deleteScheduledTransfer

Code samples

# You can also use wget
curl -X DELETE /transfers/scheduledTransfers/{scheduledTransferId} \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE /transfers/scheduledTransfers/{scheduledTransferId} HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/scheduledTransfers/{scheduledTransferId}',
  method: 'delete',

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

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

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/scheduledTransfers/{scheduledTransferId}',
{
  method: 'DELETE',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete '/transfers/scheduledTransfers/{scheduledTransferId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('/transfers/scheduledTransfers/{scheduledTransferId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/transfers/scheduledTransfers/{scheduledTransferId}");
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/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/transfers/scheduledTransfers/{scheduledTransferId}", data)
    req.Header = headers

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

Delete this scheduled transfer

DELETE /scheduledTransfers/{scheduledTransferId}

Delete this transfer. Any processing transfers may complete; future scheduled transfers, if this is a recurring transfer, will be canceled. After deleting a transfer, there is no direct access to the transactions or transaction errors.

Parameters

Parameter Description
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
scheduledTransferId
(path)
string (required)
The unique identifier of this scheduled transfer. This is an opaque string.

Try It

Example responses

404 Response

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "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": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content
StatusDescription
404 Not Found

Not Found. There is no such resource at the specified {Id} The _error field in the response will contain details about the request error.

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

Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

patchScheduledTransfer

Code samples

# You can also use wget
curl -X PATCH /transfers/scheduledTransfers/{scheduledTransferId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PATCH /transfers/scheduledTransfers/{scheduledTransferId} HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/scheduledTransfers/{scheduledTransferId}',
  method: 'patch',

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

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/transfers/scheduledTransfer/v1.1.0/profile.json",
  "createdBy": "lucille-4700",
  "createdAt": "2018-05-08T13:37:57.375Z",
  "modifiedBy": "lucille-4700",
  "modifiedAt": "2018-05-18T16:42:57.000Z",
  "_links": {
    "self": {
      "href": "/transfers/scheduledTransfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:source": {
      "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
    },
    "apiture:target": {
      "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
    },
    "apiture:creator": {
      "href": "/users/users/d076e102-facf-46e2-8ecf-bcdb531cd9e6"
    },
    "apiture:transactions": {
      "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "transactions": {
      "start": 0,
      "count": 3,
      "items": {
        "anyOf": [
          {
            "_id": "da8682e3-cc0b-4a1a-b8d2-8ce4dc45bf36",
            "occurredAt": "2018-02-05T11:10:00.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "a847c5c7-4a34-4464-b514-5ca1680cc00d",
            "occurredAt": "2018-03-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "d9ab0002-2cbb-4a4c-a01f-c3ce3ad20782",
            "occurredAt": "2018-04-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          }
        ]
      }
    },
    "source": {
      "_id": "34f8bec8-3939-4b7e-9ad5-10ee059ab250",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "Personal Savings",
      "productName": "Basic Personal Savings",
      "type": "Personal Savings",
      "subtype": "Basic Personal Savings",
      "state": "active",
      "balance": {
        "current": "3450.30",
        "available": "3450.30",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/34f8bec8-3939-4b7e-9ad5-10ee059ab250"
        }
      }
    },
    "target": {
      "_id": "c9839d60-73e5-47ba-9676-ca8138e9494d",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "My Basic Checking",
      "productName": "Basic Personal Checking",
      "type": "Personal Checking",
      "subtype": "Basic Personal Checking",
      "state": "active",
      "balance": {
        "current": "450.12",
        "available": "450.12",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/c9839d60-73e5-47ba-9676-ca8138e9494d"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
      }
    }
  },
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "state": "recurring",
  "schedule": {
    "start": "2018-02-05",
    "count": 3,
    "every": "P1M",
    "end": "2021-04-05"
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/scheduledTransfers/{scheduledTransferId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch '/transfers/scheduledTransfers/{scheduledTransferId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('/transfers/scheduledTransfers/{scheduledTransferId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/transfers/scheduledTransfers/{scheduledTransferId}");
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/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/transfers/scheduledTransfers/{scheduledTransferId}", data)
    req.Header = headers

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

Update this scheduled transfer

PATCH /scheduledTransfers/{scheduledTransferId}

Perform a partial update of this transfer. Fields which are omitted are not updated. Nested _embedded and _links are ignored if included. If the state of the transfer allows, this operation may change the description, amount, and schedule; the source and target accounts and _embedded objects may not be changed. In the schedule, the user may not changed the count. The user may not change the state.

This update operation is subject to the same constraints defined in the createTransfer (POST /transfers/transfers) operation.

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/transfers/scheduledTransfer/v1.1.0/profile.json",
  "createdBy": "lucille-4700",
  "createdAt": "2018-05-08T13:37:57.375Z",
  "modifiedBy": "lucille-4700",
  "modifiedAt": "2018-05-18T16:42:57.000Z",
  "_links": {
    "self": {
      "href": "/transfers/scheduledTransfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:source": {
      "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
    },
    "apiture:target": {
      "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
    },
    "apiture:creator": {
      "href": "/users/users/d076e102-facf-46e2-8ecf-bcdb531cd9e6"
    },
    "apiture:transactions": {
      "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "transactions": {
      "start": 0,
      "count": 3,
      "items": {
        "anyOf": [
          {
            "_id": "da8682e3-cc0b-4a1a-b8d2-8ce4dc45bf36",
            "occurredAt": "2018-02-05T11:10:00.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "a847c5c7-4a34-4464-b514-5ca1680cc00d",
            "occurredAt": "2018-03-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "d9ab0002-2cbb-4a4c-a01f-c3ce3ad20782",
            "occurredAt": "2018-04-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          }
        ]
      }
    },
    "source": {
      "_id": "34f8bec8-3939-4b7e-9ad5-10ee059ab250",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "Personal Savings",
      "productName": "Basic Personal Savings",
      "type": "Personal Savings",
      "subtype": "Basic Personal Savings",
      "state": "active",
      "balance": {
        "current": "3450.30",
        "available": "3450.30",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/34f8bec8-3939-4b7e-9ad5-10ee059ab250"
        }
      }
    },
    "target": {
      "_id": "c9839d60-73e5-47ba-9676-ca8138e9494d",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "My Basic Checking",
      "productName": "Basic Personal Checking",
      "type": "Personal Checking",
      "subtype": "Basic Personal Checking",
      "state": "active",
      "balance": {
        "current": "450.12",
        "available": "450.12",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/c9839d60-73e5-47ba-9676-ca8138e9494d"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
      }
    }
  },
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "state": "recurring",
  "schedule": {
    "start": "2018-02-05",
    "count": 3,
    "every": "P1M",
    "end": "2021-04-05"
  }
}

Parameters

Parameter Description
scheduledTransferId
(path)
string (required)
The unique identifier of this scheduled transfer. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
body
(body)
scheduledTransfer (required)

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/transfers/scheduledTransfer/v1.1.0/profile.json",
  "createdBy": "lucille-4700",
  "createdAt": "2018-05-08T13:37:57.375Z",
  "modifiedBy": "lucille-4700",
  "modifiedAt": "2018-05-18T16:42:57.000Z",
  "_links": {
    "self": {
      "href": "/transfers/scheduledTransfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:source": {
      "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
    },
    "apiture:target": {
      "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
    },
    "apiture:creator": {
      "href": "/users/users/d076e102-facf-46e2-8ecf-bcdb531cd9e6"
    },
    "apiture:transactions": {
      "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "transactions": {
      "start": 0,
      "count": 3,
      "items": {
        "anyOf": [
          {
            "_id": "da8682e3-cc0b-4a1a-b8d2-8ce4dc45bf36",
            "occurredAt": "2018-02-05T11:10:00.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "a847c5c7-4a34-4464-b514-5ca1680cc00d",
            "occurredAt": "2018-03-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "d9ab0002-2cbb-4a4c-a01f-c3ce3ad20782",
            "occurredAt": "2018-04-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          }
        ]
      }
    },
    "source": {
      "_id": "34f8bec8-3939-4b7e-9ad5-10ee059ab250",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "Personal Savings",
      "productName": "Basic Personal Savings",
      "type": "Personal Savings",
      "subtype": "Basic Personal Savings",
      "state": "active",
      "balance": {
        "current": "3450.30",
        "available": "3450.30",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/34f8bec8-3939-4b7e-9ad5-10ee059ab250"
        }
      }
    },
    "target": {
      "_id": "c9839d60-73e5-47ba-9676-ca8138e9494d",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "My Basic Checking",
      "productName": "Basic Personal Checking",
      "type": "Personal Checking",
      "subtype": "Basic Personal Checking",
      "state": "active",
      "balance": {
        "current": "450.12",
        "available": "450.12",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/c9839d60-73e5-47ba-9676-ca8138e9494d"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
      }
    }
  },
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "state": "recurring",
  "schedule": {
    "start": "2018-02-05",
    "count": 3,
    "every": "P1M",
    "end": "2021-04-05"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: scheduledTransfer
StatusDescription
404 Not Found

Not Found. There is no such resource at the specified {Id} The _error field in the response will contain details about the request error.

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

Schema: errorResponse
StatusDescription
409 Conflict
Conflict. A conflict can occur if another existing transfer matches the request exactly. If similar transfers are desired, ensure at least the description is unique.
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
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.

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

Schema: errorResponse

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 transfer resource.

suspendScheduledTransfer

Code samples

# You can also use wget
curl -X POST /transfers/suspendedScheduledTransfers?scheduledTransfer=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /transfers/suspendedScheduledTransfers?scheduledTransfer=string HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/suspendedScheduledTransfers',
  method: 'post',
  data: '?scheduledTransfer=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

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

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/suspendedScheduledTransfers?scheduledTransfer=string',
{
  method: 'POST',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/transfers/suspendedScheduledTransfers',
  params: {
  'scheduledTransfer' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/transfers/suspendedScheduledTransfers', params={
  'scheduledTransfer': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/transfers/suspendedScheduledTransfers?scheduledTransfer=string");
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{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

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

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

Suspend a scheduled transfer

POST /suspendedScheduledTransfers

Suspend a scheduled recurring transfer. This disables future recurring transfers until the scheduled transfer is either resumed or canceled. Any transfers that would have occurred on dates that passed while suspended will not be processed on those dates. Use the apiture:resume or apiture:cancel links on the instance to resume or cancel the remaining transfers. This operation is only valid on scheduled transfers which are in recurring state, and only if the underlying bank core support suspending transfers.

This operation is invoked by submitting a POST to the href in the scheduled transfer's apiture:suspend link. The service includes the apiture:suspend link in the scheduled recurring transfer if and only if the user may suspend the transfer and if the banking core allows suspending. If the banking core does not allow suspending a recurring transfer, the user should instead cancel the transfer and create a new one.

A client can check if the institution supports suspending transfers by accessing the suspendScheduledTransfersEnabled property in the basic getConfigurationGroupValue.

Parameters

Parameter Description
scheduledTransfer
(query)
string (required)
A server-generated key which identifies a scheduled transfer resource.
scheduledTransferUri
(query)
string
The URI of a scheduled transfer resource. This parameter is deprecated and will be removed in the next version. Use ?scheduledTransfer= instead.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/transfers/scheduledTransfer/v1.1.0/profile.json",
  "createdBy": "lucille-4700",
  "createdAt": "2018-05-08T13:37:57.375Z",
  "modifiedBy": "lucille-4700",
  "modifiedAt": "2018-05-18T16:42:57.000Z",
  "_links": {
    "self": {
      "href": "/transfers/scheduledTransfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:source": {
      "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
    },
    "apiture:target": {
      "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
    },
    "apiture:creator": {
      "href": "/users/users/d076e102-facf-46e2-8ecf-bcdb531cd9e6"
    },
    "apiture:transactions": {
      "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "transactions": {
      "start": 0,
      "count": 3,
      "items": {
        "anyOf": [
          {
            "_id": "da8682e3-cc0b-4a1a-b8d2-8ce4dc45bf36",
            "occurredAt": "2018-02-05T11:10:00.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "a847c5c7-4a34-4464-b514-5ca1680cc00d",
            "occurredAt": "2018-03-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "d9ab0002-2cbb-4a4c-a01f-c3ce3ad20782",
            "occurredAt": "2018-04-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          }
        ]
      }
    },
    "source": {
      "_id": "34f8bec8-3939-4b7e-9ad5-10ee059ab250",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "Personal Savings",
      "productName": "Basic Personal Savings",
      "type": "Personal Savings",
      "subtype": "Basic Personal Savings",
      "state": "active",
      "balance": {
        "current": "3450.30",
        "available": "3450.30",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/34f8bec8-3939-4b7e-9ad5-10ee059ab250"
        }
      }
    },
    "target": {
      "_id": "c9839d60-73e5-47ba-9676-ca8138e9494d",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "My Basic Checking",
      "productName": "Basic Personal Checking",
      "type": "Personal Checking",
      "subtype": "Basic Personal Checking",
      "state": "active",
      "balance": {
        "current": "450.12",
        "available": "450.12",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/c9839d60-73e5-47ba-9676-ca8138e9494d"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
      }
    }
  },
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "state": "recurring",
  "schedule": {
    "start": "2018-02-05",
    "count": 3,
    "every": "P1M",
    "end": "2021-04-05"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: scheduledTransfer
StatusDescription
400 Bad Request

Bad Request. The scheduledTransferUri was malformed or does not refer to a scheduled transfer.

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

StatusDescription
409 Conflict

Conflict. The specified scheduled transfer is in a state that does not allow suspending, or the banking core does not allow suspending transfers.

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

StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
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.

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

Schema: errorResponse
StatusDescription
500 Internal Server Error

Server Error. The server encountered an unexpected condition that prevented it from fulfilling the request.

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

Schema: errorResponse

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 transfer resource.

resumeScheduledTransfer

Code samples

# You can also use wget
curl -X POST /transfers/resumedScheduledTransfers?scheduledTransfer=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /transfers/resumedScheduledTransfers?scheduledTransfer=string HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/resumedScheduledTransfers',
  method: 'post',
  data: '?scheduledTransfer=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

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

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/resumedScheduledTransfers?scheduledTransfer=string',
{
  method: 'POST',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/transfers/resumedScheduledTransfers',
  params: {
  'scheduledTransfer' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/transfers/resumedScheduledTransfers', params={
  'scheduledTransfer': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/transfers/resumedScheduledTransfers?scheduledTransfer=string");
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{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

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

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

Resume a suspended scheduled transfer

POST /resumedScheduledTransfers

POST the URI of a suspended scheduled transfer to resume it. This enables future recurring transfers. Any transfers that would have occurred on dates that passed while suspended will not be processed on those dates. See also the extendSchedule query parameter on this operation. This operation is only valid on scheduled transfers which are in the suspended state.

This operation is invoked by submitting a POST to the href in the scheduled transfer's apiture:resume link, The link will be present if the transfer can be resumed.

Parameters

Parameter Description
scheduledTransfer
(query)
string (required)
A server-generated key which identifies a scheduled transfer resource.
scheduledTransferUri
(query)
string
The URI of a scheduled transfer resource. This parameter is deprecated and will be removed in the next version. Use ?scheduledTransfer= instead.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
extendSchedule
(query)
boolean
If true, the schedule.end will be extended if necessary so that the maximumCount number of transfers will be made (based on the periods in every). The default value (false) prevents processing transfers that the user may not expect based on the original schedule. (The user may still update the schedule.end via PATCH to the scheduled transfer.)

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/transfers/scheduledTransfer/v1.1.0/profile.json",
  "createdBy": "lucille-4700",
  "createdAt": "2018-05-08T13:37:57.375Z",
  "modifiedBy": "lucille-4700",
  "modifiedAt": "2018-05-18T16:42:57.000Z",
  "_links": {
    "self": {
      "href": "/transfers/scheduledTransfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:source": {
      "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
    },
    "apiture:target": {
      "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
    },
    "apiture:creator": {
      "href": "/users/users/d076e102-facf-46e2-8ecf-bcdb531cd9e6"
    },
    "apiture:transactions": {
      "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "transactions": {
      "start": 0,
      "count": 3,
      "items": {
        "anyOf": [
          {
            "_id": "da8682e3-cc0b-4a1a-b8d2-8ce4dc45bf36",
            "occurredAt": "2018-02-05T11:10:00.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "a847c5c7-4a34-4464-b514-5ca1680cc00d",
            "occurredAt": "2018-03-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "d9ab0002-2cbb-4a4c-a01f-c3ce3ad20782",
            "occurredAt": "2018-04-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          }
        ]
      }
    },
    "source": {
      "_id": "34f8bec8-3939-4b7e-9ad5-10ee059ab250",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "Personal Savings",
      "productName": "Basic Personal Savings",
      "type": "Personal Savings",
      "subtype": "Basic Personal Savings",
      "state": "active",
      "balance": {
        "current": "3450.30",
        "available": "3450.30",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/34f8bec8-3939-4b7e-9ad5-10ee059ab250"
        }
      }
    },
    "target": {
      "_id": "c9839d60-73e5-47ba-9676-ca8138e9494d",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "My Basic Checking",
      "productName": "Basic Personal Checking",
      "type": "Personal Checking",
      "subtype": "Basic Personal Checking",
      "state": "active",
      "balance": {
        "current": "450.12",
        "available": "450.12",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/c9839d60-73e5-47ba-9676-ca8138e9494d"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
      }
    }
  },
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "state": "recurring",
  "schedule": {
    "start": "2018-02-05",
    "count": 3,
    "every": "P1M",
    "end": "2021-04-05"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: scheduledTransfer
StatusDescription
400 Bad Request

Bad Request. The scheduledTransferUri was malformed or does not refer to a scheduled transfer.

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

StatusDescription
409 Conflict

Conflict. The specified scheduled transfer is in a state that does not allow resuming.

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

StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
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.

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

Schema: errorResponse
StatusDescription
500 Internal Server Error

Server Error. The server encountered an unexpected condition that prevented it from fulfilling the request.

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

Schema: errorResponse

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 transfer resource.

cancelScheduledTransfer

Code samples

# You can also use wget
curl -X POST /transfers/canceledScheduledTransfers?scheduledTransfer=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /transfers/canceledScheduledTransfers?scheduledTransfer=string HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/canceledScheduledTransfers',
  method: 'post',
  data: '?scheduledTransfer=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

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

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/canceledScheduledTransfers?scheduledTransfer=string',
{
  method: 'POST',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/transfers/canceledScheduledTransfers',
  params: {
  'scheduledTransfer' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/transfers/canceledScheduledTransfers', params={
  'scheduledTransfer': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/transfers/canceledScheduledTransfers?scheduledTransfer=string");
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{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

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

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

Cancel a scheduled transfer

POST /canceledScheduledTransfers

POST the URI of a scheduled transfer to cancel it. This cancels all future recurring transfers. Any transfers that would have occurred on future dates will be canceled. This operation is only valid on scheduled transfers which are in the scheduled, recurring, or suspended state. It may also be allowed if the transfer state is processing and the optional cutoff time has not passed.

This operation is invoked by submitting a POST to the href in the scheduled transfer's apiture:cancel link, The link will be present if the transfer can be canceled.

Parameters

Parameter Description
scheduledTransfer
(query)
string (required)
A server-generated key which identifies a scheduled transfer resource.
scheduledTransferUri
(query)
string
The URI of a scheduled transfer resource. This parameter is deprecated and will be removed in the next version. Use ?scheduledTransfer= instead.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.

Try It

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/transfers/scheduledTransfer/v1.1.0/profile.json",
  "createdBy": "lucille-4700",
  "createdAt": "2018-05-08T13:37:57.375Z",
  "modifiedBy": "lucille-4700",
  "modifiedAt": "2018-05-18T16:42:57.000Z",
  "_links": {
    "self": {
      "href": "/transfers/scheduledTransfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:source": {
      "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
    },
    "apiture:target": {
      "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
    },
    "apiture:creator": {
      "href": "/users/users/d076e102-facf-46e2-8ecf-bcdb531cd9e6"
    },
    "apiture:transactions": {
      "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "transactions": {
      "start": 0,
      "count": 3,
      "items": {
        "anyOf": [
          {
            "_id": "da8682e3-cc0b-4a1a-b8d2-8ce4dc45bf36",
            "occurredAt": "2018-02-05T11:10:00.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "a847c5c7-4a34-4464-b514-5ca1680cc00d",
            "occurredAt": "2018-03-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "d9ab0002-2cbb-4a4c-a01f-c3ce3ad20782",
            "occurredAt": "2018-04-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          }
        ]
      }
    },
    "source": {
      "_id": "34f8bec8-3939-4b7e-9ad5-10ee059ab250",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "Personal Savings",
      "productName": "Basic Personal Savings",
      "type": "Personal Savings",
      "subtype": "Basic Personal Savings",
      "state": "active",
      "balance": {
        "current": "3450.30",
        "available": "3450.30",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/34f8bec8-3939-4b7e-9ad5-10ee059ab250"
        }
      }
    },
    "target": {
      "_id": "c9839d60-73e5-47ba-9676-ca8138e9494d",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "My Basic Checking",
      "productName": "Basic Personal Checking",
      "type": "Personal Checking",
      "subtype": "Basic Personal Checking",
      "state": "active",
      "balance": {
        "current": "450.12",
        "available": "450.12",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/c9839d60-73e5-47ba-9676-ca8138e9494d"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
      }
    }
  },
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "state": "recurring",
  "schedule": {
    "start": "2018-02-05",
    "count": 3,
    "every": "P1M",
    "end": "2021-04-05"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: scheduledTransfer
StatusDescription
400 Bad Request

Bad Request. The scheduledTransferUri was malformed or does not refer to a scheduled transfer.

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

StatusDescription
409 Conflict

Conflict. The specified scheduled transfer is in a state that does not allow cancellation.

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

StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
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.

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

Schema: errorResponse
StatusDescription
500 Internal Server Error

Server Error. The server encountered an unexpected condition that prevented it from fulfilling the request.

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

Schema: errorResponse

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 transfer resource.

Past Transfer

Processed transfers

getPastTransfers

Code samples

# You can also use wget
curl -X GET /transfers/pastTransfers \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /transfers/pastTransfers HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

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

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

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

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/pastTransfers',
{
  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',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/transfers/pastTransfers', params={

}, headers = headers)

print r.json()

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

package main

import (
       "bytes"
       "net/http"
)

func main() {

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

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

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

Return a collection of past transfers

GET /pastTransfers

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

Past transfers are transfers which have been processed or canceled.

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first transfer item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of transfer representations to return in this page.
Default: 100
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
This collection may be sorted by following properties:
state
name
description
createdAt
start
filter
(query)
string
Optional filter criteria. See filtering.
This collection may be filtered by following properties and functions:
• Property account using functions eq, in
• Property sourceAccount using functions eq, in
• Property targetAccount using functions eq, in
• Property state using functions eq, ne, in
• Property name using functions eq, ne, lt, le, gt, ge, startsWith, endsWith, contains, search
• Property _id using functions eq, in
q
(query)
string
Optional search string. See searching.
state
(query)
array[string]
Subset the transfers collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending matches only items whose state is pending; ?state=removed|inactive matches items whose state is removed or inactive. This is combined with an implicit and with other filters if they are used. See filtering.
name
(query)
string
Subset the transfers collection to those with this name value. Use | to separate multiple values. For example, ?name=Bartell will match only items whose name is Bartell; ?name=Bartell|kirsten will match items whose name is Bartell or kirsten. This is combined with an implicit and with other filters if they are used. See filtering.
account
(query)
string
Filter the result to transfers from or to the account named by this parameter. The value is the _id (not the account number) of an external or internal account. This parameter is ignored if both ?sourceAccount= and ?targetAccount= are supplied. For security purposes, note that this is not the same as the account number.
sourceAccount
(query)
string
Filter the result to transfers from the account named by this parameter. The value is the _id (not the account number) of the source external or internal account. For security purposes, note that this is not the same as the account number.
targetAccount
(query)
string
Filter the result to transfers to the account named by this parameter. The value is the _id (not the account number) of the target external or internal account. For security purposes, note that this is not the same as the account number.

Try It

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/transfers/pastTransfers/v1.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "transfers",
  "_links": {
    "self": {
      "href": "/transfers/pastTransfers?start=10&limit=10"
    },
    "first": {
      "href": "/transfers/pastTransfers?start=0&limit=10"
    },
    "next": {
      "href": "/transfers/pastTransfers?start=20&limit=10"
    },
    "collection": {
      "href": "/transfers/pastTransfers"
    }
  },
  "_embedded": {
    "items": {
      "anyOf": [
        {
          "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
          "_profile": "https://api.apiture.com/schemas/transfers/summaryPastTransfer/v1.0.0/profile.json",
          "amount": {
            "value": "345.50",
            "currency": "USD"
          },
          "description": "Car payment",
          "state": "recurring",
          "schedule": {
            "start": "2018-02-05",
            "count": 3,
            "every": "P1M",
            "end": "2021-04-05"
          },
          "_links": {
            "apiture:source": {
              "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
            },
            "apiture:target": {
              "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
            },
            "apiture:transactions": {
              "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
            },
            "self": {
              "href": "/transfers/pastTransfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
            }
          }
        },
        {
          "_id": "a3bbba3c-d26b-497d-87b7-09eb47b24d77",
          "_profile": "https://api.apiture.com/schemas/transfers/summaryPastTransfer/v1.0.0/profile.json",
          "amount": {
            "value": "120.0",
            "currency": "USD"
          },
          "description": "Monthly allowance for Suzy's college expenses and meals",
          "state": "recurring",
          "schedule": {
            "start": "2018-08-01",
            "count": 24,
            "every": "P1M",
            "end": "2020-05-15"
          },
          "_links": {
            "apiture:source": {
              "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
            },
            "apiture:target": {
              "href": "/accounts/externalAccounts/4fda6275-0a3b-49ad-ad12-5ebcd7013362"
            },
            "apiture:transactions": {
              "href": "/transaction?transfer=/transfers/transfers/a3bbba3c-d26b-497d-87b7-09eb47b24d77"
            },
            "self": {
              "href": "/transfers/pastTransfers/a3bbba3c-d26b-497d-87b7-09eb47b24d77"
            }
          }
        }
      ]
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: pastTransfers
StatusDescription
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

getPastTransfer

Code samples

# You can also use wget
curl -X GET /transfers/pastTransfers/{pastTransferId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /transfers/pastTransfers/{pastTransferId} HTTP/1.1

Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/pastTransfers/{pastTransferId}',
  method: 'get',

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

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

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/pastTransfers/{pastTransferId}',
{
  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',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/transfers/pastTransfers/{pastTransferId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/transfers/pastTransfers/{pastTransferId}', params={

}, headers = headers)

print r.json()

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

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

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

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

Fetch a representation of this past transfer

GET /pastTransfers/{pastTransferId}

Return a HAL representation of this transfer resource.

Parameters

Parameter Description
pastTransferId
(path)
string (required)
The unique identifier of this scheduled transfer. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.
unmasked
(query)
boolean
When requesting a transfer, the full account number of the source and target accounts 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

Example responses

200 Response

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1575c0a7b0115a4b3",
    "message": "Descriptive error message...",
    "statusCode": 422,
    "type": "errorType1",
    "remediation": "Remediation string...",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "errors": [
      {
        "_id": "ccdbe2c5c938a230667b3827",
        "message": "An optional embedded error"
      },
      {
        "_id": "dbe9088dcfe2460f229338a3",
        "message": "Another optional embedded error"
      }
    ],
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/errorType1"
      }
    }
  },
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "schedule": {
    "start": "2020-01-29T15:00:00.00Z",
    "every": "P14D",
    "count": 5,
    "first": true,
    "last": false,
    "maximumCount": 10,
    "end": "2018-08-01"
  },
  "type": "internal",
  "initialFunding": false,
  "visibility": "visible",
  "confirmationId": "6e5413df-9574-4568-b0c4-dfd96bbb454b",
  "attributes": {
    "property1": {},
    "property2": {}
  },
  "state": "scheduled",
  "_id": "string",
  "createdBy": "lucille-4700",
  "createdAt": "2018-05-08T13:37:57.375Z",
  "modifiedBy": "lucille-4700",
  "modifiedAt": "2018-05-18T16:42:57.000Z",
  "sourceAccount": {
    "_links": {
      "property1": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      },
      "property2": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      }
    },
    "_embedded": {},
    "_profile": "http://example.com",
    "_error": {
      "_id": "2eae46e1575c0a7b0115a4b3",
      "message": "Descriptive error message...",
      "statusCode": 422,
      "type": "errorType1",
      "remediation": "Remediation string...",
      "occurredAt": "2018-01-25T05:50:52.375Z",
      "errors": [
        {
          "_id": "ccdbe2c5c938a230667b3827",
          "message": "An optional embedded error"
        },
        {
          "_id": "dbe9088dcfe2460f229338a3",
          "message": "Another optional embedded error"
        }
      ],
      "_links": {
        "describedby": {
          "href": "https://developer.apiture.com/errors/errorType1"
        }
      }
    },
    "accountTitle": "John Smith",
    "title": "John Smith",
    "institutionName": "3rd Party Bank",
    "routingNumber": "021000021",
    "accountNumbers": {
      "masked": "*************3210",
      "full": "9876543210"
    },
    "ifxType": "CCA"
  },
  "targetAccount": {
    "_links": {
      "property1": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      },
      "property2": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      }
    },
    "_embedded": {},
    "_profile": "http://example.com",
    "_error": {
      "_id": "2eae46e1575c0a7b0115a4b3",
      "message": "Descriptive error message...",
      "statusCode": 422,
      "type": "errorType1",
      "remediation": "Remediation string...",
      "occurredAt": "2018-01-25T05:50:52.375Z",
      "errors": [
        {
          "_id": "ccdbe2c5c938a230667b3827",
          "message": "An optional embedded error"
        },
        {
          "_id": "dbe9088dcfe2460f229338a3",
          "message": "Another optional embedded error"
        }
      ],
      "_links": {
        "describedby": {
          "href": "https://developer.apiture.com/errors/errorType1"
        }
      }
    },
    "accountTitle": "John Smith",
    "title": "John Smith",
    "institutionName": "3rd Party Bank",
    "routingNumber": "021000021",
    "accountNumbers": {
      "masked": "*************3210",
      "full": "9876543210"
    },
    "ifxType": "CCA"
  },
  "completedAt": "2018-05-08T14:08:50.375Z"
}

Responses

StatusDescription
200 OK
OK
Schema: pastTransfer
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found

Not Found. There is no such past transfer resource at the specified {transferId} The _error field in the response will contain details about the request error.

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

Schema: errorResponse

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 transfer resource.

Configuration

A set of endpoints that allows for the creation and retrieval of configuration options specific to this service

getConfiguration

Code samples

# You can also use wget
curl -X GET /transfers/configurations \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /transfers/configurations HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

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

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

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

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/configurations',
{
  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',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/transfers/configurations', params={

}, headers = headers)

print r.json()

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

package main

import (
       "bytes"
       "net/http"
)

func main() {

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

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

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

Configuration definition for this API

GET /configurations

Returns the configuration for this API

Try It

Example responses

200 Response

{
  "_links": {
    "self": {
      "href": "/configurations/configurations/"
    },
    "apiture:groups": {
      "href": "/configurations/configurations/groups"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: configuration

getConfigurationGroups

Code samples

# You can also use wget
curl -X GET /transfers/configurations/groups \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /transfers/configurations/groups HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/configurations/groups',
  method: 'get',

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

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

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/configurations/groups',
{
  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',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/transfers/configurations/groups',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/transfers/configurations/groups', params={

}, headers = headers)

print r.json()

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

package main

import (
       "bytes"
       "net/http"
)

func main() {

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

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

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

Return a collection of configuration groups

GET /configurations/groups

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

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first configuration group item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of configuration group representations to return in this page.
Default: 100
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.

Try It

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/configurations/configurationGroups/v2.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "configurationGroups",
  "_links": {
    "self": {
      "href": "/configurations/configurations/groups?start=10&limit=10"
    },
    "first": {
      "href": "/configurations/configurations/groups?start=0&limit=10"
    },
    "next": {
      "href": "/configurations/configurations/groups?start=20&limit=10"
    },
    "collection": {
      "href": "/configurations/configurations/groups"
    }
  },
  "_embedded": {
    "items": {
      "anyOf": [
        {
          "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.0/profile.json",
          "_links": {
            "self": {
              "href": "/configurations/groups/basic"
            }
          },
          "name": "basic",
          "label": "Basic Settings",
          "description": "The basic settings for the Transfers API"
        },
        {
          "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.0/profile.json",
          "_links": {
            "self": {
              "href": "/configurations/groups/calendar"
            }
          },
          "name": "calendar",
          "label": "Calendar",
          "description": "A calendar that specifies which dates are valid for performing transfers (e.g., weekdays excluding federal holidays)"
        }
      ]
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: configurationGroups
StatusDescription
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

getConfigurationGroup

Code samples

# You can also use wget
curl -X GET /transfers/configurations/groups/{groupName} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /transfers/configurations/groups/{groupName} HTTP/1.1

Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/configurations/groups/{groupName}',
  method: 'get',

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

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

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/configurations/groups/{groupName}',
{
  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',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/transfers/configurations/groups/{groupName}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/transfers/configurations/groups/{groupName}', params={

}, headers = headers)

print r.json()

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

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

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

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

Fetch a representation of this configuration group

GET /configurations/groups/{groupName}

Return a HAL representation of this configuration group resource.

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try It

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/configurations/groups/basic"
    }
  },
  "name": "basic",
  "label": "Basic Settings",
  "description": "The basic settings for the Transfers API",
  "schema": {
    "type": "object",
    "properties": {
      "dailyLimit": {
        "type": "number",
        "description": "The daily limit for the number of transfers"
      },
      "cutoffTime": {
        "type": "string",
        "format": "time",
        "description": "The cutoff time for scheduling transfers for the current day"
      }
    }
  },
  "values": {
    "dailyLimit": 5,
    "cutoffTime": "17:30:00"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: configurationGroup
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found

Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error.

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

Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-None-Match request header for GET operations for this configuration group resource.

getConfigurationGroupSchema

Code samples

# You can also use wget
curl -X GET /transfers/configurations/groups/{groupName}/schema \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /transfers/configurations/groups/{groupName}/schema HTTP/1.1

Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/configurations/groups/{groupName}/schema',
  method: 'get',

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

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

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/configurations/groups/{groupName}/schema',
{
  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',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/transfers/configurations/groups/{groupName}/schema',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/transfers/configurations/groups/{groupName}/schema', params={

}, headers = headers)

print r.json()

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

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

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

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

Fetch the schema for this configuration group

GET /configurations/groups/{groupName}/schema

Return a HAL representation of this configuration group schema resource.

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try It

Example responses

200 Response

{
  "type": "object",
  "properties": {
    "dailyLimit": {
      "type": "number",
      "description": "The daily limit for the number of transfers"
    },
    "cutoffTime": {
      "type": "string",
      "format": "time",
      "description": "The cutoff time for scheduling transfers for the current day"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: configurationSchema
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found

Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error.

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

Schema: errorResponse

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

getConfigurationGroupValues

Code samples

# You can also use wget
curl -X GET /transfers/configurations/groups/{groupName}/values \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /transfers/configurations/groups/{groupName}/values HTTP/1.1

Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/configurations/groups/{groupName}/values',
  method: 'get',

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

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

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/configurations/groups/{groupName}/values',
{
  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',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/transfers/configurations/groups/{groupName}/values',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/transfers/configurations/groups/{groupName}/values', params={

}, headers = headers)

print r.json()

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

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

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

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

Fetch the values for the specified configuration group

GET /configurations/groups/{groupName}/values

Return a representation of this configuration group values resource.

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try It

Example responses

200 Response

{
  "dailyLimit": 5,
  "cutoffTime": "17:30:00"
}

Responses

StatusDescription
200 OK
OK
Schema: configurationValues
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found

Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error.

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

Schema: errorResponse

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

updateConfigurationGroupValues

Code samples

# You can also use wget
curl -X PUT /transfers/configurations/groups/{groupName}/values \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT /transfers/configurations/groups/{groupName}/values HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/configurations/groups/{groupName}/values',
  method: 'put',

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

const fetch = require('node-fetch');
const inputBody = '{
  "dailyLimit": 5,
  "cutoffTime": "17:30:00"
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/configurations/groups/{groupName}/values',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put '/transfers/configurations/groups/{groupName}/values',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('/transfers/configurations/groups/{groupName}/values', params={

}, headers = headers)

print r.json()

URL obj = new URL("/transfers/configurations/groups/{groupName}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
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/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/transfers/configurations/groups/{groupName}/values", data)
    req.Header = headers

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

Update the values for the specified configuration group

PUT /configurations/groups/{groupName}/values

Perform a complete replacement of this set of values. This operation is reserved for administrators.

Body parameter

{
  "dailyLimit": 5,
  "cutoffTime": "17:30:00"
}

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
body
(body)
configurationValues (required)

Try It

Example responses

200 Response

{
  "dailyLimit": 5,
  "cutoffTime": "17:30:00"
}

Responses

StatusDescription
200 OK
OK
Schema: configurationValues
StatusDescription
403 Forbidden
Access denied. Only administrators may use this operation.
Schema: errorResponse
StatusDescription
404 Not Found

Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error.

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

Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. The input does not conform to the required schema.
Schema: errorResponse

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

getConfigurationGroupValue

Code samples

# You can also use wget
curl -X GET /transfers/configurations/groups/{groupName}/values/{valueName} \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /transfers/configurations/groups/{groupName}/values/{valueName} HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/configurations/groups/{groupName}/values/{valueName}',
  method: 'get',

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

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

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/configurations/groups/{groupName}/values/{valueName}',
{
  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',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/transfers/configurations/groups/{groupName}/values/{valueName}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/transfers/configurations/groups/{groupName}/values/{valueName}', params={

}, headers = headers)

print r.json()

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

package main

import (
       "bytes"
       "net/http"
)

func main() {

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

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/transfers/configurations/groups/{groupName}/values/{valueName}", data)
    req.Header = headers

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

Fetch a single value associated with the specified configuration group

GET /configurations/groups/{groupName}/values/{valueName}

Fetch a single value associated with this configuration group. This provides convenient access to the individual values` of the configuration group.

The response is always a JSON value which can be parsed with a strict JSON parser. The response may be

Examples:

To update a specific value, use PUT /transfers/configurations/groups/{groupName}/values/{valueName} (operation updateConfigurationGroupValue).

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
valueName
(path)
string (required)
The unique name of a value in a configuration group. This is the name of the value in the schema. A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']*

Try It

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline
StatusDescription
404 Not Found

Not Found. There is either no such configuration group resource at the specified {groupName} or no such value at the specified {valueName}. The _error field in the response will contain details about the request error.

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

Schema: errorResponse

Response Schema

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 configuration group resource.

updateConfigurationGroupValue

Code samples

# You can also use wget
curl -X PUT /transfers/configurations/groups/{groupName}/values/{valueName} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT /transfers/configurations/groups/{groupName}/values/{valueName} HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: '/transfers/configurations/groups/{groupName}/values/{valueName}',
  method: 'put',

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

const fetch = require('node-fetch');
const inputBody = 'string';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/transfers/configurations/groups/{groupName}/values/{valueName}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put '/transfers/configurations/groups/{groupName}/values/{valueName}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.put('/transfers/configurations/groups/{groupName}/values/{valueName}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/transfers/configurations/groups/{groupName}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
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/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/transfers/configurations/groups/{groupName}/values/{valueName}", data)
    req.Header = headers

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

Update a single value associated with the specified configuration group

PUT /configurations/groups/{groupName}/values/{valueName}

Update a single value associated with this configuration group. This provides convenient access to individual values of the configuration group as defined in the configuration group's schema. The request body must conform to the configuration group's schema for the named {valueName}. This operation is idempotent.

The request body must be a JSON value which can be parsed with a strict JSON parser. The response may be

Examples:

To fetch specific value, use GET /transfers/configurations/groups/{groupName}/values/{valueName} (operation getConfigurationGroupValue).

This operation is reserved for administrators.

Body parameter

"string"

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
valueName
(path)
string (required)
The unique name of a value in a configuration group. This is the name of the value in the schema. A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']*
body
(body)
string (required)
The request body must a valid JSON value and should be parsable with a JSON parser. The result may be a string, number, boolean, array, or object.

Try It

Example responses

200 Response

"string"

Responses

StatusDescription
200 OK
OK
Schema: string
StatusDescription
403 Forbidden
Access denied. Only administrators may use this operation.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. The input does not conform to the required schema.
Schema: errorResponse

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 configuration group resource.

API

Endpoints which describe this API.

getApi

Code samples

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

GET /transfers/ HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY'

};

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

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

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

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY'

};

fetch('/transfers/',
{
  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',
  'API-Key' => 'API_KEY'
}

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

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY'
}

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

}, headers = headers)

print r.json()

URL obj = new URL("/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/hal+json"},
        "API-Key": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/transfers/", 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.

Try It

Example responses

200 Response

{
  "id": "apiName",
  "name": "API name",
  "apiVersion": "1.0.0",
  "_profile": "https://production.api.apiture.com/schemas/common/root/v2.0.0/profile.json",
  "_links": {}
}

Responses

StatusDescription
200 OK
OK
Schema: root

getApiDoc

Code samples

# You can also use wget
curl -X GET /transfers/apiDoc \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

GET /transfers/apiDoc HTTP/1.1

Accept: application/json

var headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY'

};

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

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

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

const headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY'

};

fetch('/transfers/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',
  'API-Key' => 'API_KEY'
}

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

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'API-Key': 'API_KEY'
}

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

}, headers = headers)

print r.json()

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

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "API-Key": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/transfers/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

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline

Response Schema

Schemas

abstractRequest

{
  "_profile": "{uri of resource profile.json}",
  "_links": {
    "self": {
      "href": "{uri of current resource}"
    }
  }
}

Abstract Request (v2.0.0)

An abstract schema used to define other request-only schemas. This is a HAL resource representation, minus the _error defined in abstractResource.

This schema was resolved from common/abstractRequest.

Properties

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.

abstractResource

{
  "_profile": "{uri of resource profile.json}",
  "_links": {
    "self": {
      "href": "{uri of current resource}"
    }
  }
}

Abstract Resource (v2.0.0)

An abstract schema used to define other schemas for request and response bodies. This is a HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

This schema was resolved from common/abstractResource.

Properties

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.

accountNumbers

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

Account Numbers (v1.0.0)

Different representations of an account number.

This schema was resolved from common/accountNumbers.

Properties

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.
read-only
minLength: 8
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. This value is derived and immutable.
read-only
minLength: 4
maxLength: 17

attributeValue

{}

Attribute Value (v2.0.0)

The data associated with this attribute.

This schema was resolved from common/attributeValue.

Properties

attributes

{
  "property1": {},
  "property2": {}
}

Attributes (v2.0.0)

An optional map of name/value pairs which contains additional dynamic data about the resource.

This schema was resolved from common/attributes.

Properties

NameDescription
additionalProperties attributeValue
The data associated with this attribute.

This schema was resolved from common/attributeValue.

collection

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1575c0a7b0115a4b3",
    "message": "Descriptive error message...",
    "statusCode": 422,
    "type": "errorType1",
    "remediation": "Remediation string...",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "errors": [
      {
        "_id": "ccdbe2c5c938a230667b3827",
        "message": "An optional embedded error"
      },
      {
        "_id": "dbe9088dcfe2460f229338a3",
        "message": "Another optional embedded error"
      }
    ],
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/errorType1"
      }
    }
  },
  "count": 0,
  "start": 0,
  "limit": 0,
  "name": "string"
}

Collection (v2.0.0)

A collection of resources. This is an abstract model schema which is extended to define specific resource collections.

This schema was resolved from common/collection.

Properties

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.
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start 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.

configuration

{
  "_links": {
    "self": {
      "href": "/configurations/configurations/"
    },
    "apiture:groups": {
      "href": "/configurations/configurations/groups"
    }
  }
}

Configuration

Represents the configuration for various services.

This schema was resolved from configurations/configuration.

Properties

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.

This schema was resolved from common/links.

configurationGroup

{
  "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/configurations/groups/basic"
    }
  },
  "name": "basic",
  "label": "Basic Settings",
  "description": "The basic settings for the Transfers API",
  "schema": {
    "type": "object",
    "properties": {
      "dailyLimit": {
        "type": "number",
        "description": "The daily limit for the number of transfers"
      },
      "cutoffTime": {
        "type": "string",
        "format": "time",
        "description": "The cutoff time for scheduling transfers for the current day"
      }
    }
  },
  "values": {
    "dailyLimit": 5,
    "cutoffTime": "17:30:00"
  }
}

Configuration Group

Represents a configuration group.

This schema was resolved from configurations/configurationGroup.

Properties

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.
name string
The name of this configuration group, must be unique within the set of all resources of this type.
minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
label string
The text label for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 128
description string
The full description for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 4096
schema configurationSchema
The schema which defines the name and types of the variables that are part of this configuration definition. Property names must be simple identifiers which follow the pattern letter [letter | digit | - | _]*.

This is implicitly a schema for type: object and contains the properties.

The values in a configuration conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.

This schema was resolved from configurations/configurationSchema.

values configurationValues
The data values associated with this configuration group: the group's variable names and values. These values must conform to this item's schema.

Note*: the schema may also contain default values which, if present, are used if a value is *not set in the definition's values.

For example, multiple configurations may use the same schema that defines values a, b, and c, but each configuration may have their own unique values for a, b, and c which is separate from the schema.

This schema was resolved from configurations/configurationValues.

configurationGroupSummary

{
  "_profile": "https://api.apiture.com/schemas/configurations/configurationGroupSummary/v2.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/configurations/groups/basic"
    }
  },
  "name": "basic",
  "label": "Basic Settings",
  "description": "The basic settings for the Transfers API"
}

Configuration Group Summary

A summary of the data contained within a configuration group resource.

This schema was resolved from configurations/configurationGroupSummary.

Properties

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.
name string
The name of this configuration group, must be unique within the set of all resources of this type.
minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
label string
The text label for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 128
description string
The full description for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 4096

configurationGroups

{
  "_profile": "https://production.api.apiture.com/schemas/configurations/configurationGroups/v2.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "configurationGroups",
  "_links": {
    "self": {
      "href": "/configurations/configurations/groups?start=10&limit=10"
    },
    "first": {
      "href": "/configurations/configurations/groups?start=0&limit=10"
    },
    "next": {
      "href": "/configurations/configurations/groups?start=20&limit=10"
    },
    "collection": {
      "href": "/configurations/configurations/groups"
    }
  },
  "_embedded": {
    "items": {
      "anyOf": [
        {
          "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.0/profile.json",
          "_links": {
            "self": {
              "href": "/configurations/groups/basic"
            }
          },
          "name": "basic",
          "label": "Basic Settings",
          "description": "The basic settings for the Transfers API"
        },
        {
          "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.0/profile.json",
          "_links": {
            "self": {
              "href": "/configurations/groups/calendar"
            }
          },
          "name": "calendar",
          "label": "Calendar",
          "description": "A calendar that specifies which dates are valid for performing transfers (e.g., weekdays excluding federal holidays)"
        }
      ]
    }
  }
}

Configuration Group Collection

Collection of configuration groups. 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).

This schema was resolved from configurations/configurationGroups.

Properties

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
Embedded objects.
» items [configurationGroupSummary]
An array containing a page of configuration group items.
_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.
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start 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.

configurationSchema

{
  "type": "object",
  "properties": {
    "dailyLimit": {
      "type": "number",
      "description": "The daily limit for the number of transfers"
    },
    "cutoffTime": {
      "type": "string",
      "format": "time",
      "description": "The cutoff time for scheduling transfers for the current day"
    }
  }
}

Configuration Schema

The schema which defines the name and types of the variables that are part of this configuration definition. Property names must be simple identifiers which follow the pattern letter [letter | digit | - | _]*.

This is implicitly a schema for type: object and contains the properties.

The values in a configuration conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.

This schema was resolved from configurations/configurationSchema.

Properties

NameDescription
additionalProperties configurationSchemaValue
The data associated with this configuration schema.

This schema was resolved from configurations/configurationSchemaValue.

configurationSchemaValue

{}

Configuration Schema Value

The data associated with this configuration schema.

This schema was resolved from configurations/configurationSchemaValue.

Properties

configurationValue

{}

Configuration Value

The data associated with this configuration.

This schema was resolved from configurations/configurationValue.

Properties

configurationValues

{
  "dailyLimit": 5,
  "cutoffTime": "17:30:00"
}

Configuration Values

The data values associated with this configuration group: the group's variable names and values. These values must conform to this item's schema.

Note*: the schema may also contain default values which, if present, are used if a value is *not set in the definition's values.

For example, multiple configurations may use the same schema that defines values a, b, and c, but each configuration may have their own unique values for a, b, and c which is separate from the schema.

This schema was resolved from configurations/configurationValues.

Properties

NameDescription
additionalProperties configurationValue
The data associated with this configuration.

This schema was resolved from configurations/configurationValue.

createScheduledTransfer

{
  "_profile": "https://api.apiture.com/schemas/transfers/createScheduledTransfer/v1.0.0/profile.json",
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "initialFunding": false,
  "schedule": {
    "start": "2018-02-05",
    "maximumCount": 36,
    "every": "P1M",
    "end": "2021-04-05"
  },
  "_links": {
    "apiture:source": {
      "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
    },
    "apiture:target": {
      "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
    },
    "apiture:creator": {
      "href": "/users/users/d076e102-facf-46e2-8ecf-bcdb531cd9e6"
    }
  }
}

Create Scheduled Transfer (v1.0.0)

Representation used to schedule a new transfer. The request includes the amount of the transfer and the schedule in the body, and the source and target accounts in the request's _links via the link relations apiture:source and apiture:target, and the user who scheduled the transfer in the request's _links via the link relation apiture:creator.

Properties

NameDescription
_links links (required)
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.
amount positiveMoney (required)
The amount of the transfer. For a transfer, the amount must be positive. The funding account must have sufficient available funds. Financial institutions may impose an upper limit on the amount in a transfer which may be lower than the available balance.
description string
A description of this transfer.
maxLength: 4096
schedule schedule (required)
Describes when the transfer is scheduled to occur.
type transferType
The type of transfer.

An internal transfer is one where both the source and target account reside within the current financial institution. ach (Automated Clearinghouse) is for standard cross-institution, U.S. only transfers. ach transfers are typically processed in batches. wire transfers (not implemented in this release), can be processed faster (they may not depend on batch processing) and can also involve financial institution outside the U.S. However, wire transfers have higher fees.

This field is optional, but immutable after being set. The default is ach if either the source or target account is external, and internal if both accounts are internal. It is an error to set the type to ach or wire for transfers between internal accounts, or to set type to internal if either the source or target account is external.

initialFunding boolean
If true, the transfer is for funding a new account. Initial funding transfers have different transfer limits and schedule validation. This field is immutable after creating a transfer. This must be false for recurring transfers.
visibility transferVisibility
The transfer may be visible or hidden. Some transfers are micro-deposit ACH transfers into a local account from an external account as part of external account verification. These transfers are hidden from the user: the user may only see the transfer amounts by viewing their external account (via that external financial institution). Hidden transfers are by default omitted from the /scheduledTransfers and /pastTransfers collections. Financial institution administrators, however, can view hidden transfers.
confirmationId string
The confirmation id that the transfer request was received for processing.
read-only
attributes attributes
Additional unstructured application metadata about the transfer.

error

{
  "_id": "2eae46e1575c0a7b0115a4b3",
  "message": "Descriptive error message...",
  "statusCode": 422,
  "type": "errorType1",
  "remediation": "Remediation string...",
  "occurredAt": "2018-01-25T05:50:52.375Z",
  "errors": [
    {
      "_id": "ccdbe2c5c938a230667b3827",
      "message": "An optional embedded error"
    },
    {
      "_id": "dbe9088dcfe2460f229338a3",
      "message": "Another optional embedded error"
    }
  ],
  "_links": {
    "describedby": {
      "href": "https://developer.apiture.com/errors/errorType1"
    }
  }
}

Error (v2.0.0)

Describes an error in an API request or in a service called via the API.

This schema was resolved from common/error.

Properties

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.
read-only
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 RFC 3339 UTC time stamp indicating when the error occurred.
attributes attributes
Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type.
remediation string
An optional localized string which provides hints for how the user or client can resolve the error.
errors [error]
An optional array of nested error objects. This property is not always present.
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

errorResponse

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "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": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Error Response (v2.0.0)

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

This schema was resolved from common/errorResponse.

Properties

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.

ifxType

"CCA"

IFX Account Type (v1.0.0)

A code which identifies the product type. This is one of the IFX AcctType values. Labels and descriptions for the enumeration values are in the ifxType key in the response of the getLabels operation.

ifxType strings may have one of the following enumerated values:

ValueDescription
CCACredit card account
CDACertificate of deposit account (CD)
CLACommercial loan account
CMACash management account
DDADemand deposit account
EQUHome equity loan
GLAGeneral ledger account
ILAInstallment loan account
INVInvestment account
IRAIndividual retirement account
IRLAccounts held in Ireland
LOCConsumer line of credit
MLAMilitary Lending Account: Credit facility held by former US service member
MMAMoney market account
PBAPackaged bank Account: Account with additional benefits that charges a fixed monthly fee.
PPAPrivate pension administrator
RWDReward accounts
SDASavings deposit account

These enumeration values are further described by the label group named ifxType in the response from the getLabels operation.

This schema was resolved from products/ifxType.

Type: string
Enumerated values:
CCA
CDA
CLA
CMA
DDA
EQU
GLA
ILA
INV
IRA
IRL
LOC
MLA
MMA
PBA
PPA
RWD
SDA

{
  "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
  "title": "Applicant"
}

Link (v1.0.0)

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

This schema was resolved from common/link.

Properties

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.

{
  "property1": {
    "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
    "title": "Applicant"
  },
  "property2": {
    "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
    "title": "Applicant"
  }
}

Links (v1.0.0)

An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

Properties

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.

This schema was resolved from common/link.

pastTransfer

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1575c0a7b0115a4b3",
    "message": "Descriptive error message...",
    "statusCode": 422,
    "type": "errorType1",
    "remediation": "Remediation string...",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "errors": [
      {
        "_id": "ccdbe2c5c938a230667b3827",
        "message": "An optional embedded error"
      },
      {
        "_id": "dbe9088dcfe2460f229338a3",
        "message": "Another optional embedded error"
      }
    ],
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/errorType1"
      }
    }
  },
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "schedule": {
    "start": "2020-01-29T15:00:00.00Z",
    "every": "P14D",
    "count": 5,
    "first": true,
    "last": false,
    "maximumCount": 10,
    "end": "2018-08-01"
  },
  "type": "internal",
  "initialFunding": false,
  "visibility": "visible",
  "confirmationId": "6e5413df-9574-4568-b0c4-dfd96bbb454b",
  "attributes": {
    "property1": {},
    "property2": {}
  },
  "state": "scheduled",
  "_id": "string",
  "createdBy": "lucille-4700",
  "createdAt": "2018-05-08T13:37:57.375Z",
  "modifiedBy": "lucille-4700",
  "modifiedAt": "2018-05-18T16:42:57.000Z",
  "sourceAccount": {
    "_links": {
      "property1": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      },
      "property2": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      }
    },
    "_embedded": {},
    "_profile": "http://example.com",
    "_error": {
      "_id": "2eae46e1575c0a7b0115a4b3",
      "message": "Descriptive error message...",
      "statusCode": 422,
      "type": "errorType1",
      "remediation": "Remediation string...",
      "occurredAt": "2018-01-25T05:50:52.375Z",
      "errors": [
        {
          "_id": "ccdbe2c5c938a230667b3827",
          "message": "An optional embedded error"
        },
        {
          "_id": "dbe9088dcfe2460f229338a3",
          "message": "Another optional embedded error"
        }
      ],
      "_links": {
        "describedby": {
          "href": "https://developer.apiture.com/errors/errorType1"
        }
      }
    },
    "accountTitle": "John Smith",
    "title": "John Smith",
    "institutionName": "3rd Party Bank",
    "routingNumber": "021000021",
    "accountNumbers": {
      "masked": "*************3210",
      "full": "9876543210"
    },
    "ifxType": "CCA"
  },
  "targetAccount": {
    "_links": {
      "property1": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      },
      "property2": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      }
    },
    "_embedded": {},
    "_profile": "http://example.com",
    "_error": {
      "_id": "2eae46e1575c0a7b0115a4b3",
      "message": "Descriptive error message...",
      "statusCode": 422,
      "type": "errorType1",
      "remediation": "Remediation string...",
      "occurredAt": "2018-01-25T05:50:52.375Z",
      "errors": [
        {
          "_id": "ccdbe2c5c938a230667b3827",
          "message": "An optional embedded error"
        },
        {
          "_id": "dbe9088dcfe2460f229338a3",
          "message": "Another optional embedded error"
        }
      ],
      "_links": {
        "describedby": {
          "href": "https://developer.apiture.com/errors/errorType1"
        }
      }
    },
    "accountTitle": "John Smith",
    "title": "John Smith",
    "institutionName": "3rd Party Bank",
    "routingNumber": "021000021",
    "accountNumbers": {
      "masked": "*************3210",
      "full": "9876543210"
    },
    "ifxType": "CCA"
  },
  "completedAt": "2018-05-08T14:08:50.375Z"
}

Past Transfer (v1.0.0)

Represents a transfer that has been processed or canceled (one that is no longer scheduled).

If the state of the processed transfer is failed, the _error object will contain details of the failure, including a message. The _error.type field will be an identifier string, one of:

Response and request bodies using this pastTransfer schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this past transferGET
apiture:source The source account where funds will be debited.GET
apiture:target The target account where funds will be credited.GET

Properties

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.
amount positiveMoney
The amount of the transfer. For a transfer, the amount must be positive. The funding account must have sufficient available funds. Financial institutions may impose an upper limit on the amount in a transfer which may be lower than the available balance.
description string
A description of this transfer.
maxLength: 4096
schedule schedule
Describes when the transfer is scheduled to occur.
type transferType
The type of transfer.

An internal transfer is one where both the source and target account reside within the current financial institution. ach (Automated Clearinghouse) is for standard cross-institution, U.S. only transfers. ach transfers are typically processed in batches. wire transfers (not implemented in this release), can be processed faster (they may not depend on batch processing) and can also involve financial institution outside the U.S. However, wire transfers have higher fees.

This field is optional, but immutable after being set. The default is ach if either the source or target account is external, and internal if both accounts are internal. It is an error to set the type to ach or wire for transfers between internal accounts, or to set type to internal if either the source or target account is external.

initialFunding boolean
If true, the transfer is for funding a new account. Initial funding transfers have different transfer limits and schedule validation. This field is immutable after creating a transfer. This must be false for recurring transfers.
visibility transferVisibility
The transfer may be visible or hidden. Some transfers are micro-deposit ACH transfers into a local account from an external account as part of external account verification. These transfers are hidden from the user: the user may only see the transfer amounts by viewing their external account (via that external financial institution). Hidden transfers are by default omitted from the /scheduledTransfers and /pastTransfers collections. Financial institution administrators, however, can view hidden transfers.
confirmationId string
A unique transaction confirmation ID.
attributes attributes
Additional unstructured application metadata about the transfer.
state transferState
The state of the transfer. This is a derived and immutable value. The Transfers service processing updates the state.

The client may change state in a limited number of ways: suspending a scheduled or recurring transaction via POST to the /suspendedScheduledTransfers; resuming a suspended recurring transaction via POST to the /resumedScheduledTransfers; canceling a scheduled transaction via POST to the /canceledScheduledTransfers. These operations are available with the apiture:suspend, apiture:resume, apiture:cancel links, respectively, on an instance. canceled by POSTing to /canceledTransfers. No request body is used on these operations.

_id string
The unique identifier for this transfer resource. This is an immutable opaque string.
read-only
createdBy string
The user who created/scheduled the transfer.
createdAt string(date-time)
The RFC 3339 UTC date-time when the transfer was scheduled/created.
modifiedBy string
The user who last modified the scheduled transfer.
modifiedAt string(date-time)
The RFC 3339 UTC date-time when the transfer was last modified.
sourceAccount transferAccount
Summary properties of the source account for a transfer
targetAccount transferAccount
Summary properties of the target account for a transfer
completedAt string(date-time)
The date/time when the transfer was completed.

pastTransfers

{
  "_profile": "https://api.apiture.com/schemas/transfers/pastTransfers/v1.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "transfers",
  "_links": {
    "self": {
      "href": "/transfers/pastTransfers?start=10&limit=10"
    },
    "first": {
      "href": "/transfers/pastTransfers?start=0&limit=10"
    },
    "next": {
      "href": "/transfers/pastTransfers?start=20&limit=10"
    },
    "collection": {
      "href": "/transfers/pastTransfers"
    }
  },
  "_embedded": {
    "items": {
      "anyOf": [
        {
          "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
          "_profile": "https://api.apiture.com/schemas/transfers/summaryPastTransfer/v1.0.0/profile.json",
          "amount": {
            "value": "345.50",
            "currency": "USD"
          },
          "description": "Car payment",
          "state": "recurring",
          "schedule": {
            "start": "2018-02-05",
            "count": 3,
            "every": "P1M",
            "end": "2021-04-05"
          },
          "_links": {
            "apiture:source": {
              "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
            },
            "apiture:target": {
              "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
            },
            "apiture:transactions": {
              "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
            },
            "self": {
              "href": "/transfers/pastTransfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
            }
          }
        },
        {
          "_id": "a3bbba3c-d26b-497d-87b7-09eb47b24d77",
          "_profile": "https://api.apiture.com/schemas/transfers/summaryPastTransfer/v1.0.0/profile.json",
          "amount": {
            "value": "120.0",
            "currency": "USD"
          },
          "description": "Monthly allowance for Suzy's college expenses and meals",
          "state": "recurring",
          "schedule": {
            "start": "2018-08-01",
            "count": 24,
            "every": "P1M",
            "end": "2020-05-15"
          },
          "_links": {
            "apiture:source": {
              "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
            },
            "apiture:target": {
              "href": "/accounts/externalAccounts/4fda6275-0a3b-49ad-ad12-5ebcd7013362"
            },
            "apiture:transactions": {
              "href": "/transaction?transfer=/transfers/transfers/a3bbba3c-d26b-497d-87b7-09eb47b24d77"
            },
            "self": {
              "href": "/transfers/pastTransfers/a3bbba3c-d26b-497d-87b7-09eb47b24d77"
            }
          }
        }
      ]
    }
  }
}

Past Transfers Collection (v1.0.0)

Collection of past transfers. 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).

Properties

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
Embedded objects.
» items [summaryPastTransfer]
An array containing a page of transfer items.
_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.
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start 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.

positiveMoney

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

Positive Money (v1.0.0)

An amount of money in a specific currency, supporting only positive amounts.

Properties

NameDescription
value string
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.
currency string
The ISO 4217 currency code for this monetary value. This is always upper case ASCII.
minLength: 3
maxLength: 3

root

{
  "id": "apiName",
  "name": "API name",
  "apiVersion": "1.0.0",
  "_profile": "https://production.api.apiture.com/schemas/common/root/v2.0.0/profile.json",
  "_links": {}
}

API Root (v2.0.0)

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

This schema was resolved from common/root.

Properties

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.
_id string
This API's unique ID.
read-only
name string
This API's name.
apiVersion string
This API's version.

schedule

{
  "start": "2020-01-29T15:00:00.00Z",
  "every": "P14D",
  "count": 5,
  "first": true,
  "last": false,
  "maximumCount": 10,
  "end": "2018-08-01"
}

Schedule (v1.0.0)

A definition for a one-time or recurring scheduled transfer. Some financial institutions may limit scheduled transfers such that the transfer must be within 365 days.

Properties

NameDescription
start string(date-time)
When the transfer occurs, or when a recurring transfer begins. This is a date-time in RFC 3339 yyyy-mm-ddTHH:MM:SSZ format. If present, the time portion is a hint; the financial institution may not be able to schedule events at specific times. If start is not provided, the current date will be used. If start is after the end of processing for the current day, the event may be scheduled for the next processing day.
every string
The every period indicates the interval at which the transfer recurs, such as every week, every month, every 3 months. If omitted or empty, this transfer is a one-time transfer. every is required if either maximumCount is greater than 1 or if end is greater than start.

This value is an ISO 8601 duration string of the form P[n]Y[n]M[n]D to specify the number of years/months/days between transfers. For example, use P7D to transfer every week, P2M to transfer every other month, P4Y to transfer every four years on the anniversary set by start. Time values in every are ignored but may be honored in the future. (That is, it is not possible to schedule a transfer every 8 hours; the minimum is P1D.) To specify semi-monthly or semi-annually, use P0.5M or P0.5Y. Fractional values are only allowed for month and year, and 0.5 is the only allowed fractional value.

Some financial institutions may limit recurring transfers such that the period must be a year (P1Y, P12M, P365D) or less.

Scheduling may adjust transfer dates if start occurs near boundary dates which do occur not every year/month, such as start: "2018-01-31", every: "P1M". For example, the next transfer may occur on the 30th for months which have only 30 days (Apr, Jun, Sep, Nov), or 29th or 28th for February. Actual transfer dates may also be adjusted to account for holidays or other days when processing does not occur.

count integer
For a recurring transfer, this is the number of transfers which have been processed. It is a derived value and ignored on updates.
read-only
first boolean
If true for a monthly, recurring transfer, this value indicates that all future transfers in the series should be executed on the first processing day of the month. The first transfer in the series executes according to the optional start date, if supplied. This value is ignored if included on non-monthly recurring transfer series. It is an error if both first and last are true.
last boolean
If true for a monthly, recurring transfer, this value indicates that all future transfers in the series should be executed on the last processing day of the month. The first transfer in the series executes according to the optional start date, if supplied. This value is ignored if included on non-monthly recurring transfer series. It is an error if both first and last are true.
maximumCount integer
The maximum number of transfers to perform for a recurring transfer. (Transfers in the recurrence will stop if the current date is beyond that set by end, even if fewer than maximumCount transfers have occurred). The every period is required if maximumCount or end is set. It is an error (422) if maximumCount is anything other than 0 or 1 and every is not set. If a schedule contains both end and maximumCount, the earliest will determine when the recurrence ends. Otherwise, the Transfers service will compute the other field.
end string(date)
The optional date when the recurring transfer ends (inclusive). Transfers recur until the maximumCount of transfers are met or the next transfer is after the end date. (The earliest of maximumCount or end wins). If specified, end must be no earlier than start. This is a date in RFC 3339 yyyy-mm-dd format.

When scheduling a recurring transfer, the request should contain either maximumCount or end, but not both. The other field will be computed.

scheduledTransfer

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/transfers/scheduledTransfer/v1.1.0/profile.json",
  "createdBy": "lucille-4700",
  "createdAt": "2018-05-08T13:37:57.375Z",
  "modifiedBy": "lucille-4700",
  "modifiedAt": "2018-05-18T16:42:57.000Z",
  "_links": {
    "self": {
      "href": "/transfers/scheduledTransfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:source": {
      "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
    },
    "apiture:target": {
      "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
    },
    "apiture:creator": {
      "href": "/users/users/d076e102-facf-46e2-8ecf-bcdb531cd9e6"
    },
    "apiture:transactions": {
      "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {
    "transactions": {
      "start": 0,
      "count": 3,
      "items": {
        "anyOf": [
          {
            "_id": "da8682e3-cc0b-4a1a-b8d2-8ce4dc45bf36",
            "occurredAt": "2018-02-05T11:10:00.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "a847c5c7-4a34-4464-b514-5ca1680cc00d",
            "occurredAt": "2018-03-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          },
          {
            "_id": "d9ab0002-2cbb-4a4c-a01f-c3ce3ad20782",
            "occurredAt": "2018-04-05T11:11:17.375Z",
            "amount": {
              "value": "345.50",
              "currency": "USD",
              "description": "Car payment"
            }
          }
        ]
      }
    },
    "source": {
      "_id": "34f8bec8-3939-4b7e-9ad5-10ee059ab250",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "Personal Savings",
      "productName": "Basic Personal Savings",
      "type": "Personal Savings",
      "subtype": "Basic Personal Savings",
      "state": "active",
      "balance": {
        "current": "3450.30",
        "available": "3450.30",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/34f8bec8-3939-4b7e-9ad5-10ee059ab250"
        }
      }
    },
    "target": {
      "_id": "c9839d60-73e5-47ba-9676-ca8138e9494d",
      "_profile": "https://api.apiture.com/schemas/accounts/summaryAccount/v1.0.0/profile.json",
      "name": "My Basic Checking",
      "productName": "Basic Personal Checking",
      "type": "Personal Checking",
      "subtype": "Basic Personal Checking",
      "state": "active",
      "balance": {
        "current": "450.12",
        "available": "450.12",
        "currency": "USD"
      },
      "_links": {
        "self": {
          "href": "https://api.apiture.com/accounts/c9839d60-73e5-47ba-9676-ca8138e9494d"
        }
      }
    },
    "_links": {
      "self": {
        "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
      }
    }
  },
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "state": "recurring",
  "schedule": {
    "start": "2018-02-05",
    "count": 3,
    "every": "P1M",
    "end": "2021-04-05"
  }
}

Scheduled Transfer (v1.1.0)

Representation of a transfer resource: a transfer of funds from one account to another. A transfer consists of an amount, a source account, a target account, and a schedule which specifies a one-time transfer or a recurring transfer.

The _embedded object contains transactions, which contains the first page of transactions matching this transfer, and the summary representations of the source and target accounts.

Response and request bodies using this scheduledTransfer schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this transferGET
apiture:source The source account where funds will be debited.GET
apiture:target The target account where funds will be credited.GET
apiture:cancelCancel a scheduled transferPOST
apiture:suspendSuspend a scheduled transferPOST
apiture:resumeResume a suspended scheduled transferPOST

Properties

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.
amount positiveMoney
The amount of the transfer. For a transfer, the amount must be positive. The funding account must have sufficient available funds. Financial institutions may impose an upper limit on the amount in a transfer which may be lower than the available balance.
description string
A description of this transfer.
maxLength: 4096
schedule schedule
Describes when the transfer is scheduled to occur.
type transferType
The type of transfer.

An internal transfer is one where both the source and target account reside within the current financial institution. ach (Automated Clearinghouse) is for standard cross-institution, U.S. only transfers. ach transfers are typically processed in batches. wire transfers (not implemented in this release), can be processed faster (they may not depend on batch processing) and can also involve financial institution outside the U.S. However, wire transfers have higher fees.

This field is optional, but immutable after being set. The default is ach if either the source or target account is external, and internal if both accounts are internal. It is an error to set the type to ach or wire for transfers between internal accounts, or to set type to internal if either the source or target account is external.

initialFunding boolean
If true, the transfer is for funding a new account. Initial funding transfers have different transfer limits and schedule validation. This field is immutable after creating a transfer. This must be false for recurring transfers.
visibility transferVisibility
The transfer may be visible or hidden. Some transfers are micro-deposit ACH transfers into a local account from an external account as part of external account verification. These transfers are hidden from the user: the user may only see the transfer amounts by viewing their external account (via that external financial institution). Hidden transfers are by default omitted from the /scheduledTransfers and /pastTransfers collections. Financial institution administrators, however, can view hidden transfers.
confirmationId string
The confirmation id that the transfer request was received for processing.
read-only
attributes attributes
Additional unstructured application metadata about the transfer.
state transferState
The state of the transfer. This is a derived and immutable value. The Transfers service processing updates the state.

The client may change state in a limited number of ways: suspending a scheduled or recurring transaction via POST to the /suspendedScheduledTransfers; resuming a suspended recurring transaction via POST to the /resumedScheduledTransfers; canceling a scheduled transaction via POST to the /canceledScheduledTransfers. These operations are available with the apiture:suspend, apiture:resume, apiture:cancel links, respectively, on an instance. canceled by POSTing to /canceledTransfers. No request body is used on these operations.

_id string
The unique identifier for this transfer resource. This is an immutable opaque string.
read-only
editable boolean
If true, the user who requested this transfer resource is entitled to edit the transfer attributes.
read-only
createdBy string
The user who created/scheduled the transfer.
createdAt string(date-time)
The RFC 3339 UTC date-time when the transfer was scheduled/created.
modifiedBy string
The user who last modified the scheduled transfer.
modifiedAt string(date-time)
The RFC 3339 UTC date-time when the transfer was last modified.
sourceAccount transferAccount
Summary properties of the source account for a transfer
targetAccount transferAccount
Summary properties of the target account for a transfer

scheduledTransfers

{
  "_profile": "https://api.apiture.com/schemas/transfers/scheduledTransfers/v1.1.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "transfers",
  "_links": {
    "self": {
      "href": "/transfers/scheduledTransfers?start=10&limit=10"
    },
    "first": {
      "href": "/transfers/scheduledTransfers?start=0&limit=10"
    },
    "next": {
      "href": "/transfers/scheduledTransfers?start=20&limit=10"
    },
    "collection": {
      "href": "/transfers/scheduledTransfers"
    }
  },
  "_embedded": {
    "items": {
      "anyOf": [
        {
          "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
          "_profile": "https://api.apiture.com/schemas/transfers/summaryScheduledTransfer/v1.0.0/profile.json",
          "amount": {
            "value": "345.50",
            "currency": "USD"
          },
          "description": "Car payment",
          "state": "recurring",
          "schedule": {
            "start": "2018-02-05",
            "count": 3,
            "every": "P1M",
            "end": "2021-04-05"
          },
          "_links": {
            "apiture:source": {
              "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
            },
            "apiture:target": {
              "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
            },
            "apiture:transactions": {
              "href": "/transaction?transfer=/transfers/transfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
            },
            "self": {
              "href": "/transfers/scheduledTransfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
            }
          }
        },
        {
          "_id": "a3bbba3c-d26b-497d-87b7-09eb47b24d77",
          "_profile": "https://api.apiture.com/schemas/transfers/summaryScheduledTransfer/v1.0.0/profile.json",
          "amount": {
            "value": "120.0",
            "currency": "USD"
          },
          "description": "Monthly allowance for Suzy's college expenses and meals",
          "state": "recurring",
          "schedule": {
            "start": "2018-08-01",
            "count": 24,
            "every": "P1M",
            "end": "2020-05-15"
          },
          "_links": {
            "apiture:source": {
              "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
            },
            "apiture:target": {
              "href": "/accounts/externalAccounts/4fda6275-0a3b-49ad-ad12-5ebcd7013362"
            },
            "apiture:transactions": {
              "href": "/transaction?transfer=/transfers/transfers/a3bbba3c-d26b-497d-87b7-09eb47b24d77"
            },
            "self": {
              "href": "/transfers/scheduledTransfers/a3bbba3c-d26b-497d-87b7-09eb47b24d77"
            }
          }
        }
      ]
    }
  }
}

Scheduled Transfer Collection (v1.1.0)

Collection of scheduled transfers. 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).

Properties

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
Embedded objects.
» items [summaryScheduledTransfer]
An array containing a page of transfer items.
_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.
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start 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.

summaryPastTransfer

{
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "schedule": {
    "start": "2020-01-29T15:00:00.00Z",
    "every": "P14D",
    "count": 5,
    "first": true,
    "last": false,
    "maximumCount": 10,
    "end": "2018-08-01"
  },
  "type": "internal",
  "initialFunding": false,
  "visibility": "visible",
  "confirmationId": "573165972",
  "attributes": {
    "property1": {},
    "property2": {}
  },
  "state": "scheduled",
  "_id": "string"
}

Past Transfer Summary (v1.0.0)

Summary representation of a past transfer resource. The summary includes the transfer ID, description, amount, state, and schedule, and the _links indicate the source and target accounts. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects. For transfers which have failed, the _error object will describe the error circumstances.

Response and request bodies using this summaryPastTransfer schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this past transferGET
apiture:source The source account where funds will be debited.GET
apiture:target The target account where funds will be credited.GET

Properties

NameDescription
amount positiveMoney
The amount of the transfer. For a transfer, the amount must be positive. The funding account must have sufficient available funds. Financial institutions may impose an upper limit on the amount in a transfer which may be lower than the available balance.
description string
A description of this transfer.
maxLength: 4096
schedule schedule
Describes when the transfer is scheduled to occur.
type transferType
The type of transfer.

An internal transfer is one where both the source and target account reside within the current financial institution. ach (Automated Clearinghouse) is for standard cross-institution, U.S. only transfers. ach transfers are typically processed in batches. wire transfers (not implemented in this release), can be processed faster (they may not depend on batch processing) and can also involve financial institution outside the U.S. However, wire transfers have higher fees.

This field is optional, but immutable after being set. The default is ach if either the source or target account is external, and internal if both accounts are internal. It is an error to set the type to ach or wire for transfers between internal accounts, or to set type to internal if either the source or target account is external.

initialFunding boolean
If true, the transfer is for funding a new account. Initial funding transfers have different transfer limits and schedule validation. This field is immutable after creating a transfer. This must be false for recurring transfers.
visibility transferVisibility
The transfer may be visible or hidden. Some transfers are micro-deposit ACH transfers into a local account from an external account as part of external account verification. These transfers are hidden from the user: the user may only see the transfer amounts by viewing their external account (via that external financial institution). Hidden transfers are by default omitted from the /scheduledTransfers and /pastTransfers collections. Financial institution administrators, however, can view hidden transfers.
confirmationId string
The confirmation id that the transfer request was received for processing.
read-only
attributes attributes
Additional unstructured application metadata about the transfer.
state transferState
The state of the transfer. This is a derived and immutable value. The Transfers service processing updates the state.

The client may change state in a limited number of ways: suspending a scheduled or recurring transaction via POST to the /suspendedScheduledTransfers; resuming a suspended recurring transaction via POST to the /resumedScheduledTransfers; canceling a scheduled transaction via POST to the /canceledScheduledTransfers. These operations are available with the apiture:suspend, apiture:resume, apiture:cancel links, respectively, on an instance. canceled by POSTing to /canceledTransfers. No request body is used on these operations.

_id string
The unique identifier for this transfer resource. This is an immutable opaque string.
read-only

summaryScheduledTransfer

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/transfers/summaryScheduledTransfer/v1.1.0/profile.json",
  "_links": {
    "self": {
      "href": "/transfers/scheduledTransfers/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:source": {
      "href": "/accounts/accounts/46a31698-7398-4538-a9c9-9496010da2c2"
    },
    "apiture:target": {
      "href": "/accounts/externalAccounts/599b8ab5-6925-4f58-90c5-f6aa5b05f9d9"
    }
  },
  "state": "recurring",
  "amount": {
    "value": "345.50",
    "currency": "USD"
  },
  "description": "Car payment",
  "initialFunding": false,
  "schedule": {
    "start": "2018-02-05",
    "maximumCount": 36,
    "count": 11,
    "every": "P1M",
    "end": "2021-04-05"
  }
}

Scheduled Transfer Summary (v1.1.0)

Summary representation of a scheduled transfer resource. The summary includes the transfer ID, description, amount, state, and schedule, and the _links indicate the source and target accounts. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects. For transfers which have failed, the _error object will describe the error circumstances.

Response and request bodies using this summaryScheduledTransfer schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this transferGET
apiture:source The source account where funds will be debited.GET
apiture:target The target account where funds will be credited.GET

Properties

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.
amount positiveMoney
The amount of the transfer. For a transfer, the amount must be positive. The funding account must have sufficient available funds. Financial institutions may impose an upper limit on the amount in a transfer which may be lower than the available balance.
description string
A description of this transfer.
maxLength: 4096
schedule schedule
Describes when the transfer is scheduled to occur.
type transferType
The type of transfer.

An internal transfer is one where both the source and target account reside within the current financial institution. ach (Automated Clearinghouse) is for standard cross-institution, U.S. only transfers. ach transfers are typically processed in batches. wire transfers (not implemented in this release), can be processed faster (they may not depend on batch processing) and can also involve financial institution outside the U.S. However, wire transfers have higher fees.

This field is optional, but immutable after being set. The default is ach if either the source or target account is external, and internal if both accounts are internal. It is an error to set the type to ach or wire for transfers between internal accounts, or to set type to internal if either the source or target account is external.

initialFunding boolean
If true, the transfer is for funding a new account. Initial funding transfers have different transfer limits and schedule validation. This field is immutable after creating a transfer. This must be false for recurring transfers.
visibility transferVisibility
The transfer may be visible or hidden. Some transfers are micro-deposit ACH transfers into a local account from an external account as part of external account verification. These transfers are hidden from the user: the user may only see the transfer amounts by viewing their external account (via that external financial institution). Hidden transfers are by default omitted from the /scheduledTransfers and /pastTransfers collections. Financial institution administrators, however, can view hidden transfers.
confirmationId string
The confirmation id that the transfer request was received for processing.
read-only
attributes attributes
Additional unstructured application metadata about the transfer.
state transferState
The state of the transfer. This is a derived and immutable value. The Transfers service processing updates the state.

The client may change state in a limited number of ways: suspending a scheduled or recurring transaction via POST to the /suspendedScheduledTransfers; resuming a suspended recurring transaction via POST to the /resumedScheduledTransfers; canceling a scheduled transaction via POST to the /canceledScheduledTransfers. These operations are available with the apiture:suspend, apiture:resume, apiture:cancel links, respectively, on an instance. canceled by POSTing to /canceledTransfers. No request body is used on these operations.

_id string
The unique identifier for this transfer resource. This is an immutable opaque string.
read-only
editable boolean
If true, the user who requested this transfer resource is entitled to edit the transfer attributes.
read-only

transferAccount

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1575c0a7b0115a4b3",
    "message": "Descriptive error message...",
    "statusCode": 422,
    "type": "errorType1",
    "remediation": "Remediation string...",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "errors": [
      {
        "_id": "ccdbe2c5c938a230667b3827",
        "message": "An optional embedded error"
      },
      {
        "_id": "dbe9088dcfe2460f229338a3",
        "message": "Another optional embedded error"
      }
    ],
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/errorType1"
      }
    }
  },
  "accountTitle": "John Smith",
  "title": "John Smith",
  "institutionName": "3rd Party Bank",
  "routingNumber": "021000021",
  "accountNumbers": {
    "masked": "*************3210",
    "full": "9876543210"
  },
  "ifxType": "CCA"
}

Transfer Account (v1.0.0)

Summary properties of the source and target account for a transfer.

Properties

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.
accountTitle string
The title of the account. Traditionally, this is the name of the account holder. This field is deprecated and will be removed in a future release; use title instead.
maxLength: 512
title string
The title of the account. Traditionally, this is the name of the account holder.
maxLength: 512
institutionName string
The name of the financial institution.
read-only
minLength: 2
maxLength: 128
routingNumber string
The account routing number which identifies the financial institution. The full routing number and full account number are required to fully identify the account.
read-only
minLength: 9
maxLength: 9
accountNumbers accountNumbers
The account numbers for this account
read-only
ifxType ifxType
A code which identifies the product type. This is one of the IFX AcctType values.
read-only

transferState

"scheduled"

Transfer State (v1.0.0)

The state of the transfer.

transferState strings may have one of the following enumerated values:

ValueDescription
scheduledScheduled: A transfer is `scheduled` after a new one-time transfer is approved; it is scheduled to occur in the future.
recurringRecurring: A transfer is `recurring` after a new recurring transfer is approved; it is scheduled to start in the future.
pendingApprovalPending Approval: The source or target account is an external account which has not been verified. The financial institution may review the transfer and approve or deny it (the state will change to `scheduled` or `failed`).
processingProcessing: A transfer which has been begun and is currently being processed. A processing transfer can be modified as long as the transfer cutoff time has not passed. Once the cutoff time passes, the transfer cannot be modified (the amount or schedule may not be changed). To change a recurring transfer after the cutoff time, wait for the state to change back to `recurring`.
suspendedSuspended: A scheduled recurring transfer which is temporarily suspended or paused. No further transfer of funds will occur until it is resumed. If it is resumed, any missed transfers will not be performed.
canceledCanceled: A transfer which has been canceled. No further transfer of funds will occur. Canceled transfers cannot be restarted; create a new one instead, or suspend/resume them instead of canceling. A canceled transfer cannot be modified. **Note**: There is no way to cancel specific transfers within a recurring transfer; instead, suspend the transfer and resume it after the desired date has passed.
failedFailed: A transfer which failed. The `_error` will indicate the cause. A completed transfer cannot be modified.
completedCompleted: A transfer which has completed successfully. A completed transfer cannot be modified.

Type: string
Enumerated values:
scheduled
recurring
pendingApproval
processing
suspended
completed
canceled
failed

transferType

"internal"

Transfer Type (v1.0.0)

The type of transfer.

transferType strings may have one of the following enumerated values:

ValueDescription
internalInternal: An transfer where both the source and target account reside within the current financial institution.
achAch: `ach` (_Automated Clearinghouse_) is for standard cross-institution, U.S. only transfers. `ach` transfers are typically processed in batches after the financial institution's daily cut-off date, and usually not on weekends or holidays.
wireWire: `wire` transfers (not yet implemented) can be processed faster (they may not depend on batch processing) and can also involve financial institution outside the U.S. However, wire transfers have higher fees.

Type: string
Enumerated values:
internal
ach
wire

transferVisibility

"visible"

Transfer Visibility (v1.0.0)

The transfer may be visible or hidden. Some transfers are micro-deposit ACH transfers into a local account from an external account as part of external account verification. These transfers are hidden from the user: the user may only see the transfer amounts by viewing their external account (via that external financial institution). Hidden transfers are by default omitted from the /scheduledTransfers and /pastTransfers collections. Financial institution administrators, however, can view hidden transfers.

transferVisibility strings may have one of the following enumerated values:

ValueDescription
visibleVisible
hiddenHidden: As part of external account verification, micro-deposit ACH transfers from an external account into a local account are _hidden_ from the user.

Type: string
Enumerated values:
visible
hidden