Depending on applicable regulations or business limitations, specific API requests may not be available for your use.
Create Internal Cash Transfer Withdrawal
This request is used to transfer cash between two Folio accounts.
- Please note that there are numerous restrictions related to deposits/withdrawals into different types of Folio accounts based upon account and user characteristics (e.g., no contributions into a traditional IRA or rollover IRA when the account owner is over 70½ years old; certain states have defined minimum withholdings from IRA accounts; etc.) which will be checked when sent through this API and or when the funds are received at Folio. Learn more in the Folio Institutional Help Center.
- The system will reject attempts to create transactions after the 12:00:00pm EDT for the current date. If the current time is after 12:00:00, the transactions must be future dated.
- The system will reject transactions that fall on non-settlement days (holidays or weekends),
- The system will reject attempts to create transactions with account restrictions.
- The system will allow transactions to be created on unverified banklinks. However, the system will not process those transactions until the banklinks are verified, request date notwithstanding.
- The system will reject attempts to create transactions with amounts less than $0.01.
- The system will reject attempts to create transactions using deleted banklinks.
- The system will reject attempts to create transactions where the banklink is newer than the transaction. In other words, the transaction request date cannot precede the banklink creation date.
- The system will reject attempts to create transactions using banklinks with no explicit relationship with the account.
- In terms of the error messages, process date equals request date.
- The system will perform an immediate cash availability check on a transaction if the request date is the current date prior to 12:00pm EDT, otherwise, the cash availability check occurs on the requested date.
- The system will enforce withdrawal limits for the target account. The default system limit is $200,000.00 over a 30 day period.
- The system requires that withholding information is provided if the withdrawal is from non-ROTH IRA account.
- The withholding types can be represented as fixed dollar('D') or percentage('P'). If you select those options, the witholding amounts MUST be greater than 0.00.
- To elect not to withhold, option NONE('N') must be used. Withholding amounts of 0.00 can then be used.
- Withholding types can be mixed and match. For example, state withholding can be a percentage, while fed can be a fixed dollar amount.
- The sum of state and fed withholding amounts cannot exceed the requested withdrawal amount.
- Different states can have different withholding amounts. Distributions from your IRA are subject to state taxes which vary by state. See State Income Tax table for more information. The system will verify state withholding amoutns in accordance with that state's tax rules.
Request URL
Syntax | POST /restapi/accounts/{accountnumber}/cashtransactions/internaltransfer |
---|---|
Example URL | https://api.uat.foliofn.com/restapi/accounts/RA1234ABCD/cashtransactions/internaltransfer |
Request Data Fields
Field | Required | Description |
---|---|---|
transactionType | Yes | The type of transaction to be created. “ITW” -- Internal Transfer Withdrawal. |
sourceId | Depends | The source account of the funds for the transaction, Folio accountnumber for withdrawal. |
targetId | Depends | The destination account of the funds for the transaction, Required for withdrawal transaction. |
amount | Yes | Amount of the transaction. The default system limit for deposit is $100,000.00; the default system limit for withdrawal is $200,000.00 over a 30 day period |
repeatType | Required | The frequency type of repeating transaction, “O” - One-time. |
processDate | Yes | The process date of the transaction. It can also act as the start date of a repeating transaction. Follows ISO-8601 formatted date. |
doAlertFlag | No | Need permission to use this field. Default value is "true", set to "false" to silence the alert. |
maxRepeatTimes | Depends | Max number of repeat times. Required if it is a repeatable transaction and endDateChoice is "transfersMaxNumOf", return validation error otherwise. |
Request Example: Successful Internal transfer withdrawal Creation
POST /restapi/accounts/RA1234ABCD/cashtransactions HTTP/1.1
Content-Type: application/json
{
"amount" : "250",
"processDate" : "2019-11-04T15:07:38.360-05:00",
"repeatType" : "0",
"sourceId" : "2594073385611396851",
"targetId" : "RA1234ABCD",
"transactionType" : "ITW"
}
Response Example 1: Successful Internal transfer withdrawal Creation
If the internal transfer withdrawal succeeds, the system will return a '201 Created' with location information.
HTTP/1.1 201 Created
Date: Wed, 20 Jul 2016 20:18:30 GMT
Location: http://api.uat.foliofn.com/restapi/accounts/RA1234ABCD/cashtransactions/internaltransfer/2017612635063278223
Content-Length: 0
Content-Language: en
Response Example 2: Failure due to internal transfer withdrawal request with 0.0 transfer amount
If the internal transfer withdrawal attempt fails, the system will return a '400 Bad Request' with information regarding the nature of the error in the response body.
The error code is returned in the 'errorCode' field, while the 'message' field contains information about the actually error.
HTTP/1.1 400 Bad Request
Date: Fri, 29 Jul 2016 15:10:59 GMT
Location: https://api.uat.foliofn.com/restapi/accounts/RA1234ABCD/cashtransactions
Content-Type: application/json
Transfer-Encoding: chunked
[
{
"type":"VALIDATION_FIELD",
"field":"amount",
"errorCode":"1003",
"message":"Invalid field value"
}
]
Response Example 3: Failure due to internal transfer withdrawal request with non-settlement date of 07/30/2016 (Saturday) and amount exceeds maximum amount limit in request body
If the internal transfer withdrawal attempt fails, the system will return a '400 Bad Request' with information regarding the nature of the error in the response body.
The error code is returned in the 'errorCode' field, while the 'message' field contains information about the actually error.
HTTP/1.1 400 Bad Request
Date: Fri, 29 Jul 2016 15:10:59 GMT
Location: https://api.uat.foliofn.com/restapi/accounts/RA1234ABCD/cashtransactions
Content-Type: application/json
Transfer-Encoding: chunked
[
{
"type":"VALIDATION_RULE",
"errorCode":"",
"message":""
},
{
"type":"VALIDATION_RULE",
"errorCode":"",
"message":""
}
]
Error Codes
This section captures the error codes returned by the API.
It should be noted that some errors are strictly internal errors that API consumers are never expected to encounter during the course of normal operations. They are most likely caused by a bug in the API or some other internal issue. For those errors, the only solution is to contact apisupport@folioinstitutional.com.
1003 | Invalid field value for: 1. the value is less or equal to 0 for these fields, sourceOid, targetOid, amount, fedWithholdAmount, stateWithholdAmount, oid; 2. with invalid enumeration value for these fields, transactionType, endDateChoice, distributionReasonCode, fedWithholdType, stateWithholdType, status, cancelReasonCode. | N |
1004 | Invalid field value length for these fields, iraContributionYear (must be 4), cancelReason (max 255) | N |
9000 | The process date for current transaction cannot be a past date. | N |
9001 | The process date for current transaction cannot be a non-settlement date. | N |
9002 | For same day transaction, the request time must before 12pm. | N |
9003 | Request transaction amount cannot exceed the maximum transaction amount limit. | N |
9004 | Cash transaction source cannot be null. | Y |
9005 | Cash transaction target cannot be null. | Y |
9006 | The system cannot find the targetoid. | N |
9007 | The system cannot find the sourceoid. | N |
9008 | The transaction type is unsupported. | N |
9009 | Contribution year cannot be null for a one time transaction with a IRA account. | N |
9010 | The system will only allow the contribution year to be one year earlier than the request date year if the request date month and day fall between 1/1 and 4/15. | N |
9013 | Missing firm attribute information. | N |
9017 | The system will enforce transaction limits for the EFT withdrawal. The default system limit is $100,000.00. | N |
9018 | The source account is unrelated to the target EFT bank link. | N |
9019 | Attempting to use a deleted banklink to create transaction. | N |
9023 | The system has issue to retrieve transaction limit for target account. | Y |
9027 | The entity attempting to create the transaction doesn't exist in the system. | N |
9034 | Null creator oid is not allowed. | Y |
9035 | Null creatorOid type is not allowed. | Y |
9036 | Null modifier oid is not allowed. | Y |
9037 | Null modifierOid type is not allowed. | Y |
9038 | Invalid request data fields. | N |
9051 | No permission to set cash transaction alert flag. | N |
9056 | Account number does not exist or mismatch with associated transaction. | N |
9057 | Request transaction amount invalid. Provide amount with proper minor units. | N |
9058 | Active Funds Hold is in place. | N |
Change Log
11/05/2019
- Created page