menu

ACH Transactions

GS Advisor Solutions APIs can be used to create ACH deposits and withdrawals using a new or existing bank link.

There are numerous restrictions related to deposits and withdrawals into different types of accounts based upon account and user characteristics which will be checked when sent through this API and or when the funds are received by us.

Learn more in the Advisor Help Center.

General Rules for Cash Transactions

  • The system will reject attempts to create transactions after the 3:00:00 PM ET for the current date. If the current time is after 3:00:00 PM ET, 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 on with accounts with 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 for 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.

Deposit Rules

  • The contribution year is the current year UNLESS the deposit occurs between the start of the calendar year and the IRS published due date for federal annual income tax filing (e.g., 01/01/YEAR 00:00:00 ET and 04/15/YEAR 23:59:59 ET). During this time the contribution year could be the current or previous year, until the client has filed their US federal income tax forms with the IRS for the previous year.
  • The IRA contribution year is required for one-time IRA deposits. The system will reject deposits without a contribution year provided with the transaction request.
  • The IRA contribution year SHOULD NOT be sent with recurring IRA deposit requests.
  • The system will enforce deposit limits that are applicable for the target account based on the firm configuration and other factors. The default system limit is $100,000.00.
  • The system will reject attempts to create individual transactions for IRA accounts where the individual transaction amount exceeds the annual IRA contribution limits.
  • The system WILL NOT sum individual transactions to enforce yearly IRA contribution limits.

Withdrawal Rules

  • The system will perform an immediate cash availability check on a transaction if the request date is the current date prior to 3:00 PM ET, otherwise, the cash availability check occurs on the requested date.
  • The system will enforce withdrawal limits for the target account.
  • 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 withholding 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. The system will verify state withholding amounts in accordance with that state's tax rules.

Deposit Creation

To create a deposit, POST /v1/accounts/RA1234ABCD/cashtransactions with this payload:

{
	"amount" : "250",
	"processDate" : "2022-07-09T15:07:38.360-05:00",
	"repeatType" : "0",
	"sourceId" : "2594073385611396851",
	"targetId" : "RA1234ABCD",
	"transactionType" : "AHD"
}

If the deposit success, 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/2017612635063278223
Content-Length: 0
Content-Language: en

If the deposit 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 error.

Here is an example of a failure response for a $0 ACH deposit transaction.

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"
	  }
]

Below is an example where a failure may occur due to multiple failed validations.

In this example, the failure was due to deposit request with non-settlement date of 09/24/2022 (Saturday) and amount exceeds maximum amount limit in request body.

HTTP/1.1 400 Bad Request
Date: Fri, 23 Sep 2022 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":"9060",
	  "message":"ACH amount exceed IRA contribution limit."
	  },
	  {
	  "type":"VALIDATION_RULE",
	  "errorCode":"9001",
	  "message":"The process date for current transaction cannot be a non-settlement date."
	  }
]

Withdrawal Creation

To create a withdrawal request, POST /v1/accounts/RA1234ABCD/cashtransactions with this payload:

{
	"amount" : "250",
	"processDate" : "2022-07-09T15:07:38.360-05:00",
	"repeatType" : "0",
	"targetId" : "2594073385611396851",
	"sourceId" : "RA1234ABCD",
	"transactionType" : "AHW"
}

Error Codes

This section captures the error codes returned by the cash transactions API.

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.

CodeDescriptionInternal (Y/N)
1001Field cannot be null for these fields transactionType, sourceOid, targetOid, amount and processDate. If it is a repeatable transaction, repeatInterval and repeatOffset can not be null.N
1002Field have to be null for these fields repeatInterval and repeatOffset if it is not a repeatable transaction (repeatType value is empty).N
1003Invalid field value for: 1. the value is less or equal to 0 for these fields, sourceOid, targetOid, amount, fedWithholdAmount, stateWithholdAmount. 2. With invalid enumeration value for these fields, transactionType, endDateChoice, distributionReasonCode, fedWithholdType, stateWithholdType, status, cancelReasonCode.N
1004Invalid field value length for these fields, iraContributionYear (must be 4), cancelReason (max 255)N
9000The process date for current transaction cannot be a past date.N
9001The process date for current transaction cannot be a non-settlement date.N
9002For same day transaction, the request time must before 12pm.N
9003Request transaction amount cannot exceed the maximum transaction amount limit.N
9004Cash transaction source cannot be null.Y
9005Cash transaction target cannot be null.Y
9006The system cannot find the targetoid.N
9007The system cannot find the sourceoid.N
9008The transaction type is unsupported.N
9009Contribution year cannot be null for a one time transaction with a IRA account.N
9010The 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
9011The system doesn't support ACH deposit for current account type.N
9012ACH deposit disabled.N
9013Missing firm attribute information.N
9016The system will enforce transaction limits for the EFT deposit. The default system limit is $100,000.00.N
9017The system will enforce transaction limits for the EFT withdrawal. The default system limit is $200,000.00.N
9018The source account is unrelated to the target EFT bank link.N
9019Attempting to use a deleted banklink to create transaction.N
9020Account has no banklinks.N
9021The creation time of the banklink is later than the request date(internally known as ""process date"").N
9022The system could not find banklink based on give banklinkoid.N
9023The system has issue to retrieve transaction limit for target account.Y
9024The system has limits on the amount of deposits allowed per month. Please contact apisupport@folioinstitutional.com to get the limits for your firm.N
9025Attempt to use non-ACH banklink for an EFT transaction.N
9026Missing IRA config information.Y
9027The entity attempting to create the transaction doesn't exist in the system.N
9028The withholding type can only be on of 'P', 'D', 'N'.N
9029Invalid amount for given withholding type.N
9030The withholding type can only be on of 'P', 'D', 'N'.N
9031Invalid amount for given withholding type.N
9032The distribution reason code is invalid for current user.N
9033Invalid IRA config entity oidY
9034Null creator oid is not allowed.Y
9035Null creatorOid type is not allowed.Y
9036Null modifier oid is not allowed.Y
9037Null modifierOid type is not allowed.Y
9038Invalid request data fields.N
9039The source account doesn't have any associated address.N
9040The source account is unrelated to the target address.N
9041The source account is unrelated to the target wire bank link.N
9042Cash transaction repeat template's end date cannot be earlier than process date.N
9043Missing one or multiple required parameters for creating a repeating cash transaction.Y
9044Unsupported frequency type for repeating cash transaction.N
9045Invalid frequency offset for repeating cash transaction.N
9046The start date(request date of the first transaction in the repeat template) of the repeat transaction doesn't the match the frequency offset.N
9051No permission to set cash transaction alert flag.N
9055Withholding amount cannot exceed the cash transaction requested amount.N
9056Account number does not exist or mismatch with associated transaction.N
9057Request transaction amount invalid. Provide amount with proper minor units.N
9058Active Funds Hold is in place.N
9060ACH amount exceed IRA contribution limit.N

GS DAP® is owned and operated by Goldman Sachs. This site is for informational purposes only and does not constitute an offer to provide, or the solicitation of an offer to provide access to or use of GS DAP®. Any subsequent commitment by Goldman Sachs to provide access to and / or use of GS DAP® would be subject to various conditions, including, amongst others, (i) satisfactory determination and legal review of the structure of any potential product or activity, (ii) receipt of all internal and external approvals (including potentially regulatory approvals); (iii) execution of any relevant documentation in a form satisfactory to Goldman Sachs; and (iv) completion of any relevant system / technology / platform build or adaptation required or desired to support the structure of any potential product or activity. All GS DAP® features may not be available in certain jurisdictions. Not all features of GS DAP® will apply to all use cases. Use of terms (e.g., "account") on GS DAP® are for convenience only and does not imply any regulatory or legal status by such term.
¹ Real-time data can be impacted by planned system maintenance, connectivity or availability issues stemming from related third-party service providers, or other intermittent or unplanned technology issues.
Transaction Banking services are offered by Goldman Sachs Bank USA (“GS Bank”) and its affiliates. GS Bank is a New York State chartered bank, a member of the Federal Reserve System and a Member FDIC. For additional information, please see Bank Regulatory Information.
Certain solutions and Institutional Services described herein are provided via our Marquee platform. The Marquee platform is for institutional and professional clients only. This site is for informational purposes only and does not constitute an offer to provide the Marquee platform services described, nor an offer to sell, or the solicitation of an offer to buy, any security. Some of the services and products described herein may not be available in certain jurisdictions or to certain types of clients. Please contact your Goldman Sachs sales representative with any questions. Any data or market information presented on the site is solely for illustrative purposes. There is no representation that any transaction can or could have been effected on such terms or at such prices. Please see https://www.goldmansachs.com/disclaimer/sec-div-disclaimers-for-electronic-comms.html for additional information.
Mosaic is a service mark of Goldman Sachs & Co. LLC. This service is made available in the United States by Goldman Sachs & Co. LLC and outside of the United States by Goldman Sachs International, or its local affiliates in accordance with applicable law and regulations. Goldman Sachs International and Goldman Sachs & Co. LLC are the distributors of the Goldman Sachs Funds. Depending upon the jurisdiction in which you are located, transactions in non-Goldman Sachs money market funds are affected by either Goldman Sachs & Co. LLC, a member of FINRA, SIPC and NYSE, or Goldman Sachs International. For additional information contact your Goldman Sachs representative. Goldman Sachs & Co. LLC, Goldman Sachs International, Goldman Sachs Liquidity Solutions, Goldman Sachs Asset Management, L.P., and the Goldman Sachs funds available through Goldman Sachs Liquidity Solutions and other affiliated entities, are under the common control of the Goldman Sachs Group, Inc.
© 2025 Goldman Sachs. All rights reserved.