ACH Debit Webhook

ACH Debit Webhook

Use this webhook to approve or deny incoming ACH debits. Use the response_code field in the response to communicate your decision to SoFi Tech Solutions.

post/achdebit

Request

  • Base URL
    https://client.domain.com
  • URL
    https://client.domain.com/achdebit
  • Auth
    none declared. Required headers: X-Request-ID

Headers

X-Request-IDstring uuid required

A unique identifier for the HTTP request.

Request body

account_numberstring required

<a href="doc:about-accounts#prn" target="_blank">Payment reference number</a> for the account Example: "999200002022"

account_statusstring required

Account status code. See the possible values in the <a href="ref:api-reference-account-statuses" target="_blank">Account Statuses</a> enumeration.

Example: "N"

transaction_amountnumber float required

The amount of the ACH debit. Example: 150.00

currencystring required

The three-digit currency code for the amounts. ISO 4217 Numeric Currency Code. 3 digits. Example: "840"

available_fundsnumber float required

Amount of funds available to the account holder. Example: 500.00

ach_namestring required

Name of the ACH account holder. Example: "John Doe"

recipientstring required

Name of the <glossary:ODFI> that receives the debited funds. Example: "Widgets Incorporated"

secstring required

The three-character <a href="ref:api-reference-sec-codes-requirements-for-ach" target="_blank">standard entry class (SEC)</a> code. Example: "WEB"

is_internationalboolean required

Whether this is an international transaction. Example: "false"

descriptionstring required

Description from the ACH header. Example: "PAYROLL "

timestampstring required

Timestamp when this webhook message was sent. Format is <timestamp><timezone> where timestamp is YYYYmmdd:HHMMSS and timezone is always MST. Example: "20270315:121504MST"

transaction_idinteger required

The unique identifier of the ACH transaction. Also called ach_trans_id and deposit_transaction_id in the Program API. Example: 32146803

version'1.0' required

The version of this API. Hard-coded to "1.0".

batch_headerstring required

The batch header for the <<glossary:Nacha file>> that contained this ACH debit entry detail record. Example: "5225WIDGET INC DISCRETIONARY DATA 1234567890POSPAYROLL 2027052003070642123456780000001"

source_tracestring required

The source trace number from the ACH record. Example: "123456781234567"

jwtstring

The JSON web token (JWT) that authenticates the HTTP request from SoFi Tech Solutions. See the <a href="ref:api-reference-external-trans-api-about-external-trans-api-security" target="_blank">security overview</a> for more information and an example.

Example request

{
  "account_number": "999200002022",
  "transaction_amount": 150,
  "currency": "840",
  "available_funds": 500,
  "ach_name": "John Doe",
  "recipient": "Widgets Incorporated",
  "sec": "WEB",
  "description": "PAYROLL  ",
  "timestamp": "20270315:121504MST",
  "transaction_id": 32146803,
  "batch_header": "5225WIDGET INC      DISCRETIONARY DATA  1234567890POSPAYROLL   2027052003070642123456780000001",
  "source_trace": "123456781234567",
  "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnYWxpbGVvIiwiaWF0IjoxNTM0Mjc0ODgxLCJleHAiOjE1MzQyNzQ4ODZ9.1xUk4iNFGWLo01MyJUHXRlyrNlzwPvDMSXpN38TrblU"
}

Response

Your decision and instructions for SoFi Tech Solutions.

response_codestring required

Response code indicating how to process the ACH debit transaction. Possible response codes:

  • 00 — Approve

  • R01 — Reject; Insufficient funds

  • R07 — Reject; Authorization revoked by customer

  • R08 — Reject; Payment stopped

  • R10 — Reject; Customer advises not authorized

  • R16 — Reject; Bank account frozen

  • R20 — Reject; Non-payment bank account

  • 98 — System Error; Reject and do not retry

  • 99 — System Error; Retry later

You can use 99 to tell SoFi Tech Solutions to retry later if your product is configured for retries.

Changes

No recorded changes to this operation across all 1 revision of this API.