ACH

ACH APIs can be used for ACH transfers.

ACH API Endpoints

Transfer Funds To/From External Account

This endpoint only allows the creation of an ACH Out or ACH Pull transfer, to move funds to and from an external bank account. Daily limits can be configured for ACH Out transfers. However, daily limits are not mandatory for ACH Out. Note: For achOut and achPull transfers, Green Dot is the Originating Depository Financial Institution (ODFI).

When a valid ACH transfer is requested, an ACH transfer webhook will always be published unless there is a system failure. Refer to ACH Return Codes for details. Transaction Webhooks contain information on when the achOut or achPull is posted to the account. However, a Transaction webhook may not always be published. Refer to Event Type: Transactions for details.

API Call Structure

POST /programs/{programCode}/transfers/ach

Request Body

{
   "transferIdentifier":"string",
   "transferType":"string",
   "currency":"string",
   "transferRoute":{
      "transactionAmount":0,
      "deliveryType":"string",
      "sourceTransferEndpoint":{
         "transferEndpointType":"string",
         "accountIdentifier":"string"
      },
      "targetTransferEndpoint":{
         "encryptedBankAccount":{
            "version":"string",
            "ephemeralPublicKey":"string",
            "publicKeyHash":"string",
            "data":"string"
         }
      },
      "recurringType":"string",
      "------ Options":"S” or “R"
   },
   "fraudData":{      
   }
}

Request Parameters

FieldDescription
transferIdentifierA unique identifier for each transfer.

Note: It is recommended that the partner provide their own transfer identifiers. If not provided, then the requestId is used as the transferIdentifier.
transferTypeType of transfer being done (i.e. achOut, achPull)

Note: In the transaction API and webhook, achPull has a transactionType of “partnerTransferIn”. This can be distinguished from other Partner transfers, such as disbursementIn, by the transferType under the postedInternationalTransactionData node. achOut describes a transfer of funds to an external account from a Green Dot hosted account (user’s account), whereas achPull describes a transfer of funds from an external account to a Green Dot hosted account (user’s account). achPulls are initiated by Green Dot as the Originating Depository Financial Institution (ODFI).
currencyThe source currency of the transfer. • If a currency code is provided in the request payload, then it must be a valid 3-character ISO code and be valid for the program for which the call is being made. • Currency is optional and will default to USD if not provided. • Only USD is supported for all programs.
transferRouteContains information about the source and target of each new transfer.
transactionAmountAmount of transaction (transfer)
deliveryTypeThe following values are available to describe the type of delivery: • sameDay • nextDay • threeDay • default: Partner’s default deliveryType •0 – Partner default deliveryType • 1 – Same day • 2 – Next day • 3 – 3 business days • 4 – 4 business days • And so forth Note: For now, both the current string values and the new integer values can be used in the deliveryType field. The integer value must be equal to or greater than 0. If it is not, the following error message will be returned: • HTTP Status: 400 • Code: 600 • Description: INVALID_ENUM_VALUE deliveryType: • Supports both integer value of delivery type in string and existing string value (sameDay, nextDay, threeDay). Integer value of delivery days in string format should be the standard. String enum value is retained to support existing usage for backward compatibility. • There is no upper limit validation on integer value. Partner designates the desired number, so they can put in hold delivery days that make sense for them. • Integer delivery days can be defined in string. For example, "0" for partner default value, "1" for same day, "2" for next day, “3” for 3 days, “4” for 4 days and so on.
sourceTransferEndpointContains information about the source of the transfer.
transferEndpointTypeType of endpoint the transfer is coming from, i.e. account.
accountIdentifierUnique identifier of an account.
targetTransferEndpointContains the encrypted data of the endpoint (bank account) that the transfer is going to.
encryptedBankAccountContains the encrypted bank account data of the account that the transfer is going to. See Sample Unencrypted Bank Account Data
versionpattern: EC_v[1|2] Version of encryption algorithm used.
ephemeralPublicKeyBase64 encoded ephemeral public key. Needed for key agreement.
publicKeyHashBase64 encoded SHA-256 hash of the X509 encoded public key bytes used during encryption.
dataBase64 encrypted data of an object or property.
recurringTypeOptional for all ACH Transfers. Options are: • “R” for Recurring Payment • “S” for Single Payment (one-time payment) • If the recurringType is provided and does not contain one of these options, the following error will be returned: o HTTP Status: 400 o Code: 600 o Description: Invalidvalue provided for • If the recurringType is not provided the system will treat it as a one-time payment.
fraudDataValue used to exchange fraud related information about the user or account. Structure is defined per product.

Sample Unencrypted Bank Account Data Parameters

Note: Transfers ACH-Out and ACH-Pull are required to include the following:

Field NameRequired (Y/N/Conditional)FormatDescription
bankNameYStringName of bank where the account that the transfer is going to (target account), is located. Required to be 1- 256 characters
accountNumberYStringAccount number associated with the target account (i.e. 4857485748). Required to be 4-17 characters.
routingNumberYStringValid ACH routing number associated with the target account (i.e. 123456789). Required to be exactly 9 digits.
firstNameYStringFirst name of user (1-100 characters max). Example: Alice
lastNameYStringLast name of user (2-100 characters max). Example: Jones
accountTypeYStringType of account (i.e. checking or savings)
businessNameConditionalStringMutually exclusive of firstName and lastName. So, either the businessName or the firstName and lastName must be provided. Used to determine if an ACH transfer request involves an external business account.

Note: When executing a POST /programs/{programCode}/transfers/ach request where the transferType is “achOut”, the following limits will be enforced for ACH Out transfers. Consult with your onboarding liaison to confirm your limits.

PartnerLimit TypeFrequencyExample Amount
Acme DebitACH Out Minimum Transfer LimitPer Use1
ACH Out Velocity LimitLast 7 Days20000
ACH Out Maximum Transaction LimitPer Use3000

When one of the limits above is exceeded, the following code/sub-code will be returned.

Note: If the customer’s balance is below the minimum threshold then they will be allowed to transfer out the remaining balance.

Response Message

If the POST request is successful, the following response message will be returned along with a 201 HTTP status code.

Created

Sample Response Body

{
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"operation is successful",
         "url":"http://tbd"
      }
   ],
   "transfer":{
      "transferIdentifier":" 9f78abe3-f19a-4b2d-b653-f47450d66abf",
      "transferStatus":"completed"
   },
   "accounts":[
      {
         "accountIdentifier":"0b830092-e5d4-45b8-ad26-8a42c94ddd4c",
         "purses":[
            {
               "purseIdentifier":"562a27ec-6cae-4459-a522-be94b4570f78",
               "purseType":"primary",
               "availableBalance":12.0,
               "ledgerBalance":12.0,
               "availableBalanceAsOfDateTime":"2018-09-11T19:22:33.469Z",
               "ledgerBalanceAsOfDateTime":"2018-09-11T19:22:33.469Z"
            }
         ]
      }
   ],
   "fraudData":{     
   }
}

Response Parameters

FieldDescription
responseDetailsSee Response Details
Code
subCode
Description
url
TransferContains the identifier and status of the transfer.
transferIdentifierA unique identifier for each transfer. Note: It is recommended that the partner provide their own transfer identifiers. If not provided, then the requestId is used as the transferIdentifier. Note: If an upper-case identifier is provided in the POST /transfers/ach endpoint, it will be internally converted to lowercase and returned on both the response and webhook as lower case.
transferStatusStatus of transfer (i.e. completed, pending, failed, or canceled).
accountsContains detailed information about the account.
accountIdentifierUnique identifier of an account within a program.
pursesReturns all purses associated with account, including the primary/checking purse. Note: A purse is a balance holding object.
purseIdentifierUnique identifier for a purse.
purseTypeType of purse.
availableBalanceNumber value representing the amount of funds available for use. Pending transactions are included.
ledgerBalanceNumber value that represents the balance of the account based on all activities that have been posted to the associated ledger.
availableBalanceAsOfDateTimeThe date and time (UTC) that the available balance is reflective of. Note: Since events can be published out of chronological order, do not update the available balance if a more recent available balance as of date was previously processed.
ledgerBalanceAsOfDateTimeThe date and time (UTC) that the ledger balance is reflective of. Note: Since events can be published out of chronological order, do not update the ledger balance if a more recent ledger balance as of date was previously processed.
fraudDataValue used to exchange fraud related information about the user or account. Structure is defined per product.

ACH Availability

Schedule TimesFunding DateDelivery FlagError
Before 10:10amSame Day1
After 10:10amReturn error
Before 9:45pmNext Business Day2
After 9:45pm2 Business Days
Before 9:45pm3 Business Days3
After 9:45pm4 Business Days
Before 9:45pm4 Business Days4
After 9:45pm5 Business Days

Note: The above times are in PT.

Expected Delivery Date/Time (EDD)

ACH Out/ACH PullTime of RequestDate of RequestExpected Delivery Date/Time (EDD)Delivery Type
ACH OutTime of Request is before 10:15AM PT cutoffOn a weekday and non-banking holidaySame day of request (no time set). Example: 2019-11- 18T00:00:00N/A. Delivery Type does not apply to ACH Out.
ACH OutTime of Request is before 10:15AM PT cutoffOn a weekday or weekend and non-banking holidayNext business day (no time set). Example: 2019-11- 18T00:00:00N/A. Delivery Type does not apply to ACH Out.
ACH PullTime of Request is before 10:15AM PT cutoffOn a weekday and non-banking holidaySame day as request, at 21:00 PTDelivery Type Option:
• sameDay: Only if request is before the 10:15am cutoff
ACH PullAnytimeAny Day9:00PM PT and date available depends on chosen deliveryType. Example: If deliveryType is three business days, the EDD will be three business days after the first requested business day, at 21:00 PT.Delivery Type Options:
• Next Day
• Three Business Days (3)

Note: Delivery Type does not apply to ACH Out. It only applies to ACH pull when the credit will be funded to BaaS accounts.

NACHA guidelines

  • Per NACHA guidelines, Green Dot is required to do the following:
    • Include an RDFI indicator within the NACHA file, for partners who submit recurring ACH transfers.
    • Provide external banks with the successful bank account verification method and date when debit authorizations are requested.
    • Provide supporting evidence that the customer (user) authorized the ACH transfer.
  • To meet these guidelines, Partners will now need to provide an optional recurringType for all ACH Transfers. Options for the recurringType are:
    • “R” for Recurring Payment
    • “S” for Single Payment (one-time payment).
  • If the recurringType is provided and does not contain one of these options, the following error will be received:
    • HTTP Status: 400
    • Code: 600
    • Description: Invalid value provided for .
  • If the recurringType is not provided the system will treat it as a one-time payment.

Sample Request Body

{
   "transferIdentifier":"string",
   "transferType":"achOut",
   "currency":"USD",
   "transferRoute":{
      "transactionAmount":5,
      "sourceTransferEndpoint":{
         "transferEndpointType":"account",
         "accountIdentifier":"0b830092-e5d4-45b8-ad26-8a42c94ddd4c"
      },
      "targetTransferEndpoint":{
         "encryptedBankAccount":{
            "version":"string",
            "ephemeralPublicKey":"string",
            "publicKeyHash":"string",
            "data":"string"
         }
      },
      "recurringType":""
   },
   "fraudData":{      
   }
}

ACH Notification of Change (NOC)

Green Dot needs to be able to process ACH Notification of Change (NOC) requests received from the Federal Reserve (Fed). An ACH NOC is created by a Receiving Depository Financial Institution (RDFI) to notify the Originating Depository Financial Institution (ODFI) that the account information included in the ACH is incorrect and needs to be changed.

When ACH NOC requests are received from the Fed, subsequent ACH transfer requests using the incorrect account number or routing number included in the ACH requests will be declined.

Note: Partners can be configured to receive NOC Alert webhook notifications when a NOC is received for their program. See Event Type: NOC Alert for details.

Sample achPull Request Body (Account with a NOC Return Code)

{
   "transferIdentifier":"8aac3be4-b190-4d97-9b31-d5211cdb58d7",
   "transferType":"achPull",
   "currency":"USD",
   "transferRoute":{
      "transactionAmount":10,
      "sourceTransferEndpoint":{
         "transferEndpointType":"account",
         "accountIdentifier":"407da696-4141-410d-9674-d466626f788a"
      },
      "targetTransferEndpoint":{
         "encryptedBankAccount":{
            "version":"EC_v1",
            "ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAESot1Hj2OHD4AW9jZ39EW95SodW0Tgxg25c2omHC4tPzf+KWKNN81Gzw8K1ObbXbhaPDQqF3/okCKsBeKsdIHEg==",
            "publicKeyHash":"1YPiscLswrzhpxDdW2LvYTwKmzImy922OQ5HMcmoL9E=",
            "data":"IyHe0snwpL7kCx73YKND/ITLS4o2fCsA7xjGpWRCkEl/3XDgva4nzA6je17f73zUYrX3zfnJkKdnyFUVfZCVWPv5Sy9fodKwRcNhBouskBpxHSAwt8stZz6LvXGGOxLqzDuEG3b8Oz6ouNJA60qA5XqWDu/Wbdf1sElsWwk/S6vfxfuECbJQZP6U6FqD8SUS5QLJ87h3cOJ/RGlJrzk0vyqSHtT0enrDHzbvWLjOSIN3IQ=="
         }
      },
      "recurringType":""
   },
   "fraudData":{      
   }
}

Sample achOut Request Body (Account with a NOC Return Code)

{
   "transferIdentifier":"9d61b996-fb2c-4c51-8cb8-bfb34739f15a",
   "transferType":"achOut",
   "currency":"USD",
   "transferRoute":{
      "transactionAmount":10,
      "sourceTransferEndpoint":{
         "transferEndpointType":"account",
         "accountIdentifier":"0b7725b9-5dfc-4972-a465-ab8f889d16a0"
      },
      "targetTransferEndpoint":{
         "encryptedBankAccount":{
            "version":"EC_v1",
            "ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFNGxyj9sLVL/JoGXyeZlseahA3nFWnFgNT/Er13EpHRVXgIg+H+B8F0AP13oyz5aAobyiZ1bHP6vq5qO0hTzUA==",
            "publicKeyHash":"1YPiscLswrzhpxDdW2LvYTwKmzImy922OQ5HMcmoL9E=",           
            "data":"hqw0qkuVY8O7f6sCbxU2MoyShvRAXGqKlbT57FoZ0Y0TZkay0BTsvjrmkUb3w3VCa573Ih//2f//mfBOhH6I/AL7/Vj6ZXnQ/IspM8hrGXfHCX2TsGyTHJ1ElwcJ0WTT1aDGTFWNon+b+LJz6eQUdt185P+7SopAQKhSrdXxNuE3w9ctZyu2FKZK7SL970wHpchlo3RcQ0QK+jtl2vZUmWp/H2gt6Ex6V21p0MQ8zcExDg=="
         }
      },
      "recurringType":""
   },
   "fraudData":{
      
   }
}

Sample Response

{
   "transfer":{
      
   },
   "responseDetails":[
      {
         "code":3,
         "subCode":216,
         "description":"The transfer was initiated by an account that has previously received a NOC return. Corrected account information must be submitted.",
         "url":"http://tbd"
      }
   ]
}

Response Codes

🚧

Transfers for “Restricted” and “Closed” accounts are never allowed for inbound transfers. Outbound transfers on “Restricted” accounts, are not allowed unless there is a spend down or customer Initiated spend down involved. Outbound transfers for “Closed” Accounts may or may not be allowed depending on product or program specific rules.

ScenarioCodesubCodeDescription
If the user attempts a transfer while their account is in restricted or closed status, one of these responses will be returned.3100This account is in a restricted state that does not allow inbound or internal transfers.
If the user attempts a transfer while their account is in restricted or closed status, one of these responses will be returned.3100This account is in a restricted state that does not allow outbound transfers.
If the user attempts a transfer while their account is in restricted or closed status, one of these responses will be returned.3105A transfer is not allowed for a closed account.
Transfer exceeds monthly $20K limit3212Exceeds rolling limit for subsequent ACH Pull monthly transfer.
Transfer exceeds daily Ach Pull limit.3216Transfer exceeds daily Ach Pull limit.
Green Dot have prior received a Notice of Change for this account. Transfer not allowed with this information3310The transfer was initiated by an account that has previously received a NOC return. Corrected account information must be submitted
The accountNumber provided in the encrypted bankAccount data, does not meet the length requirement of 1 to 17 digits.3201Invalid ACH Account Number
All Transfer requests will be verified by the Green Dot fraud system. As a result, a transfer could be declined, and additionally, the accountStatus/statusReasons could be updated to potential or confirmed fraud state. In the latter case, an event notification/webhook (accountUpdate alert) would be published. See Webhooks for more details. In this scenario, the transfer is declined.3110The transfer was declined by a fraud system check
ACH Out transaction amount below minimum allowed Note: For some transfers, a minimum transfer amount is required - often $1.00.3115ACH Out transaction amount below minimum allowed
ACH Out maximum transaction amount exceeded3114ACH Out maximum transaction amount exceeded
ACH Out velocity limit exceeded3113ACH Out velocity limit exceeded

Obtain ACH Delivery Date for ACH Pull Transfers

This endpoint allows retrieval of the achDeliveryDate (expected funding date and time) for ACH Pull transfers only.

API Call Structure

Endpoint: GET /deliveryDate?achTransferType={TransferType}&scheduleDate={ScheduleDate}&achDeliveryType={AchDeliveryType} (ACH Pull Only)

GET …/deliveryDate?achTransferType={TransferType}&scheduleDate={ScheduleDate}&achDeliveryType={Ach DeliveryType}

How it Works

  • Call GET: …/deliveryDate?achTransferType={TransferType}&scheduleDate={ScheduleDate}&achDeliveryTyp e={AchDeliveryType}
  • Include the:
    • Request date
    • Request time
    • Program code
    • Delivery Type (optional)
    • Schedule Date (optional)
  • The achDeliveryDate (expected funding date and time) of the ACH Pull transfer will be returned.

Sample Response Body

{
   "achDeliveryDate":"2020-06-24T07:00:00Z",
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"Success",
         "url":"http://tbd"
      }
   ]
}

Response Codes

CodesubCodeDescription
218101Invalid Request
219600Invalid deliveryType (deliveryType < 0)

List Transfers for an Account

This endpoint allows the retrieval of a list of transfers for an account.

Note: The maximum number of transfers in a list is 180 per request.

API Call Structure

GET /programs/{programCode}/accounts/(accountIdentifier}/achTransfers

Sample Response Body

{
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"operation is successful",
         "url":" http://tbd"
      }
   ],
   "totalRecordCount":1,
   "transfers":[
      {
         "achTransferType":"achPull",
         "transferIdentifier":"4b830092-e5d4-45b8-ad26-8a42c94aaa2a",
         "accountIdentifier":"9b830092-e5d4-45b8-ad26-8a42c94ccc2c",
         "submissionDateTime":"2019-01-03T21:02:45.260Z",
         "transactionAmount":5,
         "achTransferStatus":"pending",
         "expectedDeliveryDate":"2020-06-24T17:07:00.028Z",
         "bankAccountType":"checking",
         "institutionName":"GDot Bank",
         "last4BankAccountNumber":"*************9999"
      }
   ]

If the GET request includes an invalid scheduleDate, the following response message is returned along with a 400 HTTP status code.

"transfer":{
   
},
"responseDetails":[
   {
      "code":400,
      "subCode":0,
      "description":"Invalid ACH Schedule Date.",
      "url":"http://tbd"
   }
]
}

Response Parameters

FieldDescription
responseDetailsSee Response Details
code, subCode,description,urlSee Response Details
totalRecordCount
transfersContains the identifier and status of the transfer.
achTransferTypeType of ACH transfer
transferIdentifierA unique identifier for each transfer. Note: It is recommended that the partner provide their own transfer identifiers. If not provided, then the requestId is used as the transferIdentifier.
accountIdentifierUnique identifier of an account within a program.
submissionDateTimeDate and time in UTC, that the transfer was submitted.
transactionAmountAmount of ACH transfer
achTransferStatusStatus of ACH transfer (i.e. pending, sent, successful, returned, failed, hold, cancelled, unknown).

Filtering ACH Transfers

ACH transfers can be filtered based on the following ACH Transfer Statuses, so specific ACH transfers can be viewed by the Partner.

Valid ACH Transfer Statuses

achTransferStatusAvailable in BaaSACH OutACH PullDescriptionNotes
PendingYYYACH Instruction is received and ready to send to the network, money has been moved off the Green Dot Account.Money moved off the GD account for only ACHOut
SentYYYACH instruction has been sent to the network.
ReturnedYYYACH instruction was returned from RDFI. Money will be returned to the Green Dot Account.Returned is available for both ACHPull and ACHOut
FailedYYYACH instruction failed.
CanceledYNYACH instruction was canceled prior to being sent to the network. Money has been returned to the Green Dot Account.Cancel ACHPull is available only to GBR for now.
ManualReturnYYNACH instruction was returned by the RDFI via a manual process—not the network. Money will be returned to the Green Dot account.
HoldNYYACH Instruction is held at Green Dot for review. Money has been debited from the Green Dot Account.
RejectedYYYACH instruction was held and determined to be invalid. Money will be returned to the Green Dot Account.
RejectedManualReviewYYYACH manual return was reviewed and determined to be invalid. Money will not be returned to the Green Dot Accounts.
SuccessfulYNYACH transaction transmitted successfully.Successful is applicable to ACHPull only.
PausedNYYACH transaction was paused. Money has moved.
PendingClawbackNYNThe account holder has requested clawback of an ACH instruction after it’s entered the network. Instruction has not left Green Dot.
ClawbackSentNYNThe clawback instruction has been sent to the network.
ClawbackCompletedNYNThe clawback instruction was completed and money has been returned to the Green Dot account.
ClawbackReturnedNYNThe clawback instruction was completed and returned as not executable. No money will be returned to the Green Dot Account.

If GET /achTransfers is called and the status provided is one or more of the valid ACH Transfer Statuses (listed above), then the response will contain the ACH transfers within the selected (or defaulted) date range that have an ACH Transfer Status that matches one of the statuses that was provided in the call.

Sample Response Body Snippets

Filtered by pending

"transfers": [{

"achTransferType": "achPull",

"transferIdentifier": "4434898b-d201-4634-be23-41e77587aa95",
"accountIdentifier": "78b41a0a-88ca-4386-82dd-33f9f30f818e",
"submissionDateTime": "2020-05-14T22:26:13.773Z",
"transactionAmount": 2.2300,
"achTransferStatus": "pending"
 "expectedDeliveryDate": "2020-06-24T17:07:00.028Z",
 "bankAccountType": "checking",
 "institutionName": "GDot Bank",
 "last4BankAccountNumber": "*************9999"

}],

Filtered by sent

"transfers":[
   {
      "achTransferType":"achPull",
      "transferIdentifier":"2eb154fb-291a-4faa-aaf6-73479b055c0d",
      "accountIdentifier":"d1f2c754-0802-4048-b1a0-8309b3b35202",
      "submissionDateTime":"2020-05-14T03:07:54.077Z",
      "transactionAmount":2.2300,
      "achTransferStatus":"sent""expectedDeliveryDate":"2020-06-24T17:07:00.028Z",
      "bankAccountType":"checking",
      "institutionName":"GDot Bank",
      "last4BankAccountNumber":"*************9999"
   }
],

Filtered by multiple statuses

"transfers":[
   {
      "achTransferType":"achOut",
      "transferIdentifier":"08ce2c74-7cd5-4706-9414-857b60b85e81",
      "accountIdentifier":"38c33ebb-a83c-4cd1-a8a4-4a420e553112",
      "submissionDateTime":"2020-02-25T23:11:06.310Z",
      "transactionAmount":5.0000,
      "achTransferStatus":"failed"
   },
   {
      "achTransferType":"achOut",
      "transferIdentifier":"872fab86-c394-455a-ab80-7284c1b2d827",
      "accountIdentifier":"e802b9be-781c-4112-8c18-3d27e9e1fc95",
      "submissionDateTime":"2020-05-15T18:31:45.527Z",
      "transactionAmount":5.0000,
      "achTransferStatus":"pending"
   }
],

Appendices

Direct Deposit Rules

📘

When both debits and credits are allowed, there will not be a return code.

Value (Account Status)DescriptionAllow DD (Credits)Allow DD (Debits)Return Code
NormalAny ReasonYesYes
ClosedAny ReasonNoNoR 02
LockedAny ReasonNoNoR 02
PendingAny ReasonNoNoR 03
RestrictedAccount Under ReviewYesYes
RestrictedPotential FraudYesNoR 02
RestrictedCustomer Initiated Spend DownNoYesR 02
RestrictedSpend DownNoNoR 02
RestrictedWrite OffYesNoR 02
RestrictedChanged by CSRNoNoR 02

ACH Categories

ACH CategoryValue Returned in Transaction Schema
State Tax Refundstr
Federal Tax Refundftr
Tax Refund Loantrl
Goverment Benefitsgb
Child Supportcs
Internet Transferit
Payrollpr
Unknownuk
SPECIALspc
Commercialcom
Other Payopy
Unemploymentui
Pensionpn

ACH Return Codes

ACH Return CodeDescription
1ACH Transaction exceed load limit
2ACH Account was closed
3ACH Transaction has invalid ACHTranCode
4ACH Customer Account Not Found
5ACH Direct Deposit Not Allowed on This Account
6ACH Card Not Activated
9ACH Transaction was Temp Card Without Perso
10ACH Transaction was NPNR
11ACH Transaction has CRV blocked
12ACH Transaction was rejected by card processor
13ACH Transaction debit funding response insufficient funds
14ACH Debit funding response reject (General)
15ACH Credit funding response reject (General)
16ACH Debit Transaction was rejected per the Durbin Amendment
17TaxRefundReject-IRS#800-829-1954
18TaxRefundReject-IRS#800-829-1954
19Tax Refund Reject: Non-Tax Season
20Tax Refund Reject: Payee Deceased
21ACH transaction is sent from prohibited sender
22Invalid Routing Number
23TaxRefundReject-IRS#800-829-1954
24ACH Transaction is voided and exported by rule
25Invalid CardExternalId
26ACH transaction exceeded the daily debit limit
27AccountNow ACH Transaction is funding via FIS
28ACH Transaction rejected due customer name/ssn mismatch
29ACH Transaction rejected due customer name/ssn mismatch
30ACH Transaction rejected during non-tax season
31ACH Transaction rejected due to credit rating
32Account Locked
33Spend Down
34Write Off
35Changed by CSR