How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Shift4 ACH API

The ACH API from Shift4 — 5 operation(s) for ach.

Shift4 ACH API is one of 21 APIs that Shift4 publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include ACH. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an API reference.

This API exposes 5 operations across 5 paths, and defines 59 schemas. It is described by OpenAPI 3.2.0, at version 1.7.57.

Requests are made against 2 base URLs: https://api.shift4test.com/api/rest/v1, https://api.shift4api.net/api/rest/v1.

5 operations 5 paths 59 schemas 5 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
1.7.57
Base URL
https://api.shift4api.net/api/rest/v1
Authentication
API Key, HTTP Hmac-Sha256
Resource Areas
1

Authentication & Security 2

Shift4 ACH API declares 2 security schemes for authenticating requests. An API key is passed in the header as AccessToken (AccessToken). It uses HTTP hmac-sha256 authentication (HMAC-SHA256).

  • AccessToken — A security credential used to authenticate API requests and all [i4Go®](https://s4-myportal.s3.amazonaws.com/downloads/documentation/i4go/i4go%20technical%20re…
  • HMAC-SHA256 — Authentication using HMAC-256 signatures as the authorization scheme. Sent in the Authorization header in the following format: Authorization: HMAC-SHA256 Cred…

Paths & Operations 5

Across 5 paths, the API surfaces 5 operations — 5 POST. Each is listed below with its method, path, parameters, and response codes.

ACH 5
POST
/ach/verify
ACH Verify
achverify 4 params body → 200400504
POST
/ach/sale
ACH Sale
achsale 4 params body → 200400504
POST
/ach/refund
ACH Refund
achrefund 4 params body → 200400504
POST
/ach/plaid/link_token/create
Create Plaid Link Token
achplaidlinktokencreate 4 params body → 200400504
POST
/ach/plaid/public_token/exchange
Plaid Public Token Exchange
achplaidpublictokenexchange 4 params body → 200400504

Schemas 59

The contract defines 59 schemas that model the data the API accepts and returns. The most detailed are ach_sale_token_gtv (6 properties), webhook_ach_verification_status_update (6 properties), webhook_ach_dispute_status_update (5 properties), webhook_ach_dispute_initiated (5 properties). Each schema is shown below with its type and property counts.

ach_refund_token_gtv
object
5 properties 5 required
webhook_ach_dispute_status_update
object
5 properties
webhook_ach_distribute_status_update
object
5 properties
ACHPlaidLinkTokenClientUserId
string
A unique ID representing the end user. Typically this will be a user ID number from your application. Personally identifiable information, such as an email add…
TransactionResponseCodeACHPlaidLinkToken
string
Code indicating the Shift4 host response. Value | Description | Details -------|-------------|-------- S | Success | The Plaid link token request was successfu…
MerchantMID
number
The merchant ID associated with the merchant account.
AmountACH
object
Object containing information regarding the amount being requested. The total field within the object is required and specifies the amount being requested.
1 property 1 required
TokenACH
object
2 properties 1 required
TransactionOriginalInvoice
string
The invoice number from the original sale. Used to link the refund to the original sale. Note: For US and Canadian processing: Although the invoice number is s…
ACHAccountHolderName
string
ACH account holder's name
TransactionResponseCodeACHDispute
string
Code indicating the Shift4 host response. Value | Description | Details -------|-------------|-------- D | Declined | The ACH request is declined.
ErrorCodeNoCondition
integer
Code indicating the type of error that occurred. Refer to the [Error Codes](/guides/appendices/error-codes) section of this document for more details.
ACHAccountType
string
Bank account type Value | Description ------|--------------- PC | Personal Checking PS | Personal Savings CC | Corporate Checking CS | Corporate Savings
webhook_ach_refund_status_update
object
5 properties
ErrorNoPrimarySecondary
object
4 properties
ServerName
string
The name of the server that processed the request.
TokenTypeACH
string
Specifies the type of token. Value = ACH
AmountTotalACH
number
The amount being processed for the ACH transaction. The amount must be greater than zero with a maximum amount of 99999999.99.
TransactionInvoiceAlphanumeric
string
10 character invoice number assigned by the interface to identify a transaction. An invoice number serves as a unique key that identifies a transaction within…
ACHVerifyBalance
boolean
Send as true if you want to verify the balance before processing the ACH transaction. The balance check will only be possible if the customer logged into their…
MerchantResponse
object
2 properties
MerchantName
string
The merchant’s business name as configured with Shift4.
ACHVerificationTypePrenotification
string
The type of verification used to validate the account. Value | Description ------|--------------- P | Prenotification
TransactionVendorReference
string
Optional field for information that can be searched in the merchant portal.
ErrorSeverity
string
Severity level of the error. | Severity | Description | | -------- | ---------------------------------------------------------------- | | Info | Action not req…
HostResponseReasonDescriptionACH
string
Returns a description from the host.
TransactionResponseCodeACHPlaidPublicTokenExchange
string
Code indicating the Shift4 host response. | Value | Description | Details |--------|--------------|------------------------------------------------------------…
DateTime
string
The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm). Must be sent as the local date/time of the merchant. For ex…
TransactionAuthSourceAPM
string
In a response, a code returned by the processor to indicate which host issued the response. Value | Description -------|---------------------------- A | APM (O…
TransactionInvoice
string
10-digit invoice number assigned by the interface to identify a transaction. An invoice number serves as a unique key that identifies a transaction within a ba…
ACHBalanceVerificationResult
string
Specifies whether or not the balance was verified Value | Description ------|------------- VS | Balance was verified and requested amount is below account bala…
ach_refund_bankaccount
object
5 properties 5 required
webhook_ach_sale_status_update
object
5 properties
ACHPlaidLinkTokenRedirectUrl
string
Contains the URL to which the browser should be redirected. Conditional: must be sent if the customer is using a 'mobile device' or 'website with redirection'.…
ErrorLongText
string
Extended error message that is returned if an error condition exists.
HostResponseReasonCodeACH
string
Returns a response code from the host. Value | Description ------|----------- C01 | Incorrect DFI Account Number C02 | Incorrect Routing Number C03 | Incorrect…
ACHPlaidPublicToken
string
Plaid Public Token
ACHAccountNumber
string
Bank Account Number. Do not include any dashes, spaces, or additional zeros.
ErrorShortText
string
Abbreviated error message that is always returned if an error condition exists
TokenValueACH
string
The token representing the customer's bank account credentials.
HostResponseACH
object
Returns the response code detailing why the transaction was declined.
2 properties
ACHPlaidLinkTokenLanguage
string
The language that Link should be displayed in. If no language is sent it will default to English. Value | Description ------|------------- da | Danish nl | Dut…
AmountTotal
number
The amount being charged for a particular transaction. If other amount fields are sent, they must be included in the total amount. Amount cannot be zero.
ACHPlaidPublicTokenMetadata
string
JSON encoded object received from the Plaid SDK. The metadata object received from the Plaid SDK must be json encoded and sent in this object.
ACHPlaidLinkToken
string
Plaid Link Token
NotificationId
string
Notification ID value generated by Shift4 and returned in the response. Used for matching webhook notifications back to their original request.
SourceIP
string
Public source IP Address where the request originates, not the IP Address of the web server.
TransactionResponseCodeACH
string
Code indicating the Shift4 host response. Value | Description | Details -------|-------------|-------- P | Pending | The ACH transaction is pending D | Decline…
ACHAccountNumberLastFour
string
The last 2-4 alphanumeric characters of an account's official account number.
ACHVerificationTypeVerifyWebhook
string
The type of verification used to validate the account. Value | Description ------|--------------- P | Prenotification M | Microdeposit
webhook_ach_dispute_initiated
object
5 properties
ach_sale_bankaccount
object
5 properties 5 required
ACHPaymentTypeCode
string
Specifies the payment type. If not provided in the request the transaction will default to ST. Value | Description ------|--------------- S | Single Entry. Con…
webhook_ach_verification_status_update
object
6 properties
TransactionResponseCodeACHPending
string
Code indicating the Shift4 host response. Value | Description | Details -------|-------------|-------- P | Pending | The ACH transaction is pending
ACHRoutingNumber
string
The routing number identifying the bank.
ach_sale_token_gtv
object
6 properties 5 required
ACHPlaidLinkTokenExpiration
string
Plaid Link Token Expiration
Server
object
1 property

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

shift4-ach-api-openapi.yml Raw ↑

Other APIs Shift4 publishes across the network.

Shift4 3D Secure API
Shift4 Batches API
Shift4 Cards API
Shift4 Checkout Sessions API
Shift4 Credentials API
Shift4 DCC API
Shift4 Devices API
Shift4 Gift Cards API
Shift4 Merchants API
Shift4 Mode API
Shift4 OCT API
Shift4 Payment Links API
Where this information came from

This is an independent, third-party profile of Shift4 ACH API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.