Shift4 ACH API

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

Operations 5

POST /ach/verify ACH Verify #
POST /ach/sale ACH Sale #
POST /ach/refund ACH Refund #
POST /ach/plaid/link_token/create Create Plaid Link Token #
POST /ach/plaid/public_token/exchange Plaid Public Token Exchange #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/shift4-ach-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

shift4-ach-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.7.57
  title: Shift4 Payment ACH API
  contact:
    url: https://www.shift4.com/contact-us/
servers:
- url: https://api.shift4test.com/api/rest/v1
  description: Host Direct Test URL
- url: https://api.shift4api.net/api/rest/v1
  description: Host Direct Production URL
tags:
- name: ACH
paths:
  /ach/verify:
    servers:
    - url: https://api.shift4test.com/api/rest/v1
      description: Host Direct Test URL
    - url: https://api.shift4api.net/api/rest/v1
      description: Host Direct Production URL
    post:
      tags:
      - ACH
      summary: ACH Verify
      operationId: achverify
      security:
      - AccessToken: []
      description: 'Used to verify an ach bank account prior to sending an ACH sale/refund transaction.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - dateTime
              - ach
              - sourceIp
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                ach:
                  type: object
                  required:
                  - accountNumber
                  - routingNumber
                  - accountType
                  - verificationType
                  - accountHolderName
                  properties:
                    accountNumber:
                      $ref: '#/components/schemas/ACHAccountNumber'
                    routingNumber:
                      $ref: '#/components/schemas/ACHRoutingNumber'
                    accountType:
                      $ref: '#/components/schemas/ACHAccountType'
                    verificationType:
                      $ref: '#/components/schemas/ACHVerificationTypePrenotification'
                    accountHolderName:
                      $ref: '#/components/schemas/ACHAccountHolderName'
                sourceIp:
                  $ref: '#/components/schemas/SourceIP'
                transaction:
                  type: object
                  properties:
                    vendorReference:
                      $ref: '#/components/schemas/TransactionVendorReference'
              example:
                dateTime: '2023-02-08T09:18:23.283-07:00'
                ach:
                  accountNumber: '1234567890'
                  routingNumber: '121000248'
                  accountType: PC
                  verificationType: P
                  accountHolderName: John Smith
                sourceIp: 172.110.166.244
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        token:
                          $ref: '#/components/schemas/TokenACH'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceAPM'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCodeACHPending'
                            vendorReference:
                              $ref: '#/components/schemas/TransactionVendorReference'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        notificationId:
                          $ref: '#/components/schemas/NotificationId'
                        server:
                          $ref: '#/components/schemas/Server'
                example:
                  result:
                  - dateTime: '2023-02-08T09:18:23.283-07:00'
                    merchant:
                      mid: 15877
                      name: Merchant XYZ
                    token:
                      value: '9829283019231234'
                      type: ACH
                    transaction:
                      authSource: A
                      responseCode: P
                    notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
                    server:
                      name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponseACH'
        '504':
          $ref: '#/components/responses/TimeoutResponseACH'
  /ach/sale:
    servers:
    - url: https://api.shift4test.com/api/rest/v1
      description: Host Direct Test URL
    - url: https://api.shift4api.net/api/rest/v1
      description: Host Direct Production URL
    post:
      tags:
      - ACH
      summary: ACH Sale
      operationId: achsale
      security:
      - AccessToken: []
      description: 'Used to process an ach sale transaction.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for more details on the various JSON body formats.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/ach_sale_bankaccount'
              - $ref: '#/components/schemas/ach_sale_token_gtv'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          type: object
                          description: 'Object containing information regarding the amount being requested. The `total` field within the object is required and specifies the amount being requested.

                            '
                          properties:
                            total:
                              $ref: '#/components/schemas/AmountTotal'
                        token:
                          $ref: '#/components/schemas/TokenACH'
                        ach:
                          type: object
                          properties:
                            balanceVerificationResult:
                              $ref: '#/components/schemas/ACHBalanceVerificationResult'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceAPM'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoiceAlphanumeric'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCodeACH'
                            vendorReference:
                              $ref: '#/components/schemas/TransactionVendorReference'
                        notificationId:
                          $ref: '#/components/schemas/NotificationId'
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                - dateTime: '2023-02-08T09:18:23.283-07:00'
                  amount:
                    total: 135.87
                  merchant:
                    mid: 15877
                    name: Merchant XYZ
                  token:
                    value: '9829283019231234'
                    type: ACH
                  ach:
                    balanceVerificationResult: VS
                  transaction:
                    authSource: A
                    invoice: '192029'
                    responseCode: P
                  notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
                  server:
                    name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponseACH'
        '504':
          $ref: '#/components/responses/TimeoutResponseACH'
  /ach/refund:
    servers:
    - url: https://api.shift4test.com/api/rest/v1
      description: Host Direct Test URL
    - url: https://api.shift4api.net/api/rest/v1
      description: Host Direct Production URL
    post:
      tags:
      - ACH
      summary: ACH Refund
      operationId: achrefund
      security:
      - AccessToken: []
      description: 'Used to process an ach refund transaction.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.


        See the [JSON Body Schemas](/guides/quickstart#json-body-schemas) for more details on the various JSON body formats.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/ach_refund_bankaccount'
              - $ref: '#/components/schemas/ach_refund_token_gtv'
      responses:
        '200':
          description: Transaction was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        amount:
                          type: object
                          description: 'Object containing information regarding the amount being requested. The `total` field within the object is required and specifies the amount being requested.

                            '
                          properties:
                            total:
                              $ref: '#/components/schemas/AmountTotal'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        token:
                          $ref: '#/components/schemas/TokenACH'
                        server:
                          $ref: '#/components/schemas/Server'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceAPM'
                            invoice:
                              $ref: '#/components/schemas/TransactionInvoiceAlphanumeric'
                            originalInvoice:
                              $ref: '#/components/schemas/TransactionOriginalInvoice'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCodeACH'
                            vendorReference:
                              $ref: '#/components/schemas/TransactionVendorReference'
                        notificationId:
                          $ref: '#/components/schemas/NotificationId'
              example:
                result:
                - dateTime: '2023-02-08T09:18:23.283-07:00'
                  amount:
                    total: 135.87
                  merchant:
                    mid: 15877
                    name: Merchant XYZ
                  token:
                    value: '9829283019231234'
                    type: ACH
                  transaction:
                    authSource: A
                    invoice: '192030'
                    originalInvoice: '192029'
                    responseCode: P
                  notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
                  server:
                    name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponseACH'
        '504':
          $ref: '#/components/responses/TimeoutResponseACH'
  /ach/plaid/link_token/create:
    servers:
    - url: https://api.shift4test.com/api/rest/v1
      description: Host Direct Test URL
    - url: https://api.shift4api.net/api/rest/v1
      description: Host Direct Production URL
    post:
      tags:
      - ACH
      summary: Create Plaid Link Token
      operationId: achplaidlinktokencreate
      security:
      - AccessToken: []
      description: 'Used to create a Plaid Link token to use with the Plaid Link UI.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
              - dateTime
              - plaid
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                plaid:
                  type: object
                  required:
                  - client_user_id
                  properties:
                    client_user_id:
                      $ref: '#/components/schemas/ACHPlaidLinkTokenClientUserId'
                    language:
                      $ref: '#/components/schemas/ACHPlaidLinkTokenLanguage'
                    redirectUrl:
                      $ref: '#/components/schemas/ACHPlaidLinkTokenRedirectUrl'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceAPM'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCodeACHPlaidLinkToken'
                        plaid:
                          type: object
                          properties:
                            link_token:
                              $ref: '#/components/schemas/ACHPlaidLinkToken'
                            expiration:
                              $ref: '#/components/schemas/ACHPlaidLinkTokenExpiration'
                            client_user_id:
                              $ref: '#/components/schemas/ACHPlaidLinkTokenClientUserId'
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                - dateTime: '2023-02-08T09:18:23.283-07:00'
                  merchant:
                    mid: 15877
                    name: Merchant XYZ
                  transaction:
                    authSource: A
                    responseCode: S
                  plaid:
                    link_token: link-sandbox-bea285c1-ad79-4191-8d1b-aaf537f7df59
                    expiration: '2023-02-13T21:00:25Z'
                    client_user_id: ae1a59fe-8646-4637-bbb8-d270856c508c
                  server:
                    name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponseACH'
        '504':
          $ref: '#/components/responses/TimeoutResponseACH'
  /ach/plaid/public_token/exchange:
    servers:
    - url: https://api.shift4test.com/api/rest/v1
      description: Host Direct Test URL
    - url: https://api.shift4api.net/api/rest/v1
      description: Host Direct Production URL
    post:
      tags:
      - ACH
      summary: Plaid Public Token Exchange
      operationId: achplaidpublictokenexchange
      security:
      - AccessToken: []
      description: 'Used to create a Plaid Link token to use with the Plaid Link UI.


        **Integration Methods:**

        - Host Direct


        See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

        '
      parameters:
      - $ref: '#/components/parameters/InterfaceVersion'
      - $ref: '#/components/parameters/InterfaceName'
      - $ref: '#/components/parameters/CompanyName'
      - $ref: '#/components/parameters/AccessToken'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
              - dateTime
              - ach
              - plaid
              properties:
                dateTime:
                  $ref: '#/components/schemas/DateTime'
                ach:
                  type: object
                  required:
                  - accountHolderName
                  properties:
                    accountHolderName:
                      $ref: '#/components/schemas/ACHAccountHolderName'
                plaid:
                  type: object
                  required:
                  - public_token
                  - metadata
                  properties:
                    public_token:
                      $ref: '#/components/schemas/ACHPlaidPublicToken'
                    metadata:
                      $ref: '#/components/schemas/ACHPlaidPublicTokenMetadata'
      responses:
        '200':
          description: Request was processed
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        dateTime:
                          $ref: '#/components/schemas/DateTime'
                        merchant:
                          $ref: '#/components/schemas/MerchantResponse'
                        transaction:
                          type: object
                          properties:
                            authSource:
                              $ref: '#/components/schemas/TransactionAuthSourceAPM'
                            responseCode:
                              $ref: '#/components/schemas/TransactionResponseCodeACHPlaidPublicTokenExchange'
                        notificationId:
                          $ref: '#/components/schemas/NotificationId'
                        ach:
                          type: object
                          properties:
                            accountLastFour:
                              $ref: '#/components/schemas/ACHAccountNumberLastFour'
                        token:
                          $ref: '#/components/schemas/TokenACH'
                        server:
                          $ref: '#/components/schemas/Server'
              example:
                result:
                - dateTime: '2023-02-08T09:18:23.283-07:00'
                  merchant:
                    mid: 15877
                    name: Merchant XYZ
                  transaction:
                    authSource: A
                    responseCode: A
                  notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
                  ach:
                    accountLastFour: '7890'
                  token:
                    value: '9829283019231234'
                    type: ACH
                  server:
                    name: TM01CE
        '400':
          $ref: '#/components/responses/ErrorResponseACH'
        '504':
          $ref: '#/components/responses/TimeoutResponseACH'
webhooks:
  ach-notification:
    post:
      tags:
      - ACH
      summary: Notification
      description: 'This is an outbound HTTP POST message from the Shift4 gateway to the merchant''s environment that provides status of the ach request. This notification request will be sent from Shift4 to the URL provided in the merchant''s boarding configuration.


        This requires the interface vendor to establish a listening service to receive these requests.

        '
      operationId: achnotification
      security:
      - {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/webhook_ach_verification_status_update'
              - $ref: '#/components/schemas/webhook_ach_sale_status_update'
              - $ref: '#/components/schemas/webhook_ach_refund_status_update'
              - $ref: '#/components/schemas/webhook_ach_dispute_initiated'
              - $ref: '#/components/schemas/webhook_ach_dispute_status_update'
              - $ref: '#/components/schemas/webhook_ach_distribute_status_update'
      responses:
        '200':
          description: 'Return 200 status to indicate that the Notification was received successfully.

            '
components:
  schemas:
    ach_refund_token_gtv:
      title: GTV Token
      type: object
      required:
      - dateTime
      - amount
      - transaction
      - sourceIp
      - token
      properties:
        dateTime:
          $ref: '#/components/schemas/DateTime'
        amount:
          $ref: '#/components/schemas/AmountACH'
        transaction:
          type: object
          required:
          - invoice
          - originalInvoice
          properties:
            invoice:
              $ref: '#/components/schemas/TransactionInvoiceAlphanumeric'
            originalInvoice:
              $ref: '#/components/schemas/TransactionOriginalInvoice'
            vendorReference:
              $ref: '#/components/schemas/TransactionVendorReference'
        token:
          $ref: '#/components/schemas/TokenACH'
        sourceIp:
          $ref: '#/components/schemas/SourceIP'
      example:
        dateTime: '2023-02-08T09:18:23.283-07:00'
        amount:
          total: 135.87
        transaction:
          invoice: '192030'
          originalInvoice: '192029'
        token:
          value: '9829283019231234'
        sourceIp: 172.110.166.244
    webhook_ach_dispute_status_update:
      title: ACH Dispute Status Update
      type: object
      properties:
        event:
          type: object
          properties:
            type:
              type: string
              description: '`ach.dispute.status_update`


                Occurs when the status of the ACH dispute is updated.

                '
        token:
          $ref: '#/components/schemas/TokenACH'
        transaction:
          type: object
          properties:
            authSource:
              $ref: '#/components/schemas/TransactionAuthSourceAPM'
            responseCode:
              $ref: '#/components/schemas/TransactionResponseCodeACHDispute'
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            hostResponse:
              $ref: '#/components/schemas/HostResponseACH'
        notificationId:
          $ref: '#/components/schemas/NotificationId'
        server:
          type: object
          properties:
            name:
              $ref: '#/components/schemas/ServerName'
      example:
        event:
          type: ach.dispute.status_update
        token:
          value: '9829283019231234'
          type: ACH
        transaction:
          authSource: A
          responseCode: A
          invoice: '192029'
        notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
        server:
          name: TM01CE
    webhook_ach_distribute_status_update:
      title: ACH Distribute Status Update
      type: object
      properties:
        event:
          type: object
          properties:
            type:
              type: string
              description: '`ach.distribute.status_update`


                Occurs when the status of the ACH distribute request is updated.

                '
        token:
          $ref: '#/components/schemas/TokenACH'
        transaction:
          type: object
          properties:
            authSource:
              $ref: '#/components/schemas/TransactionAuthSourceAPM'
            responseCode:
              type: string
              minLength: 1
              maxLength: 1
              readOnly: true
              example: A
              enum:
              - A
              - D
              - F
              description: "Code indicating the Shift4 host response.        \n\nValue  | Description | Details\n-------|-------------|--------\nD      | Declined    | The ACH request is declined. \nF      | Funded      | The ACH request is funded.\n"
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            hostResponse:
              $ref: '#/components/schemas/HostResponseACH'
        notificationId:
          $ref: '#/components/schemas/NotificationId'
        server:
          type: object
          properties:
            name:
              $ref: '#/components/schemas/ServerName'
      example:
        event:
          type: ach.distribute.status_update
        token:
          value: '9829283019231234'
          type: ACH
        transaction:
          authSource: A
          responseCode: A
          invoice: '192029'
        notificationId: 921e41d4-e920-4b24-8bbf-0787379ad4df
        server:
          name: TM01CE
    ACHPlaidLinkTokenClientUserId:
      type: string
      example: ae1a59fe-8646-4637-bbb8-d270856c508c
      description: '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 address or phone number, should not be used in the client_user_id.

        '
    TransactionResponseCodeACHPlaidLinkToken:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: S
      enum:
      - S
      - F
      description: "Code indicating the Shift4 host response.        \n\nValue  | Description | Details\n-------|-------------|--------\nS      | Success     | The Plaid link token request was successful.\nF      | Fail        | The Plaid link token request was unsuccessful.\n"
    MerchantMID:
      type: number
      maxLength: 10
      example: 15877
      description: 'The merchant ID associated with the merchant account.

        '
    AmountACH:
      type: object
      description: 'Object containing information regarding the amount being requested. The `total` field within the object is required and specifies the amount being requested.

        '
      required:
      - total
      properties:
        total:
          $ref: '#/components/schemas/AmountTotalACH'
    TokenACH:
      type: object
      required:
      - value
      properties:
        value:
          $ref: '#/components/schemas/TokenValueACH'
        type:
          $ref: '#/components/schemas/TokenTypeACH'
    TransactionOriginalInvoice:
      type: string
      maxLength: 10
      example: '192029'
      description: '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 sent as a JSON string it is a numeric value. No alpha characters are allowed.**


        **For processing outside of the US and Canada alpha characters are allowed.**

        '
    ACHAccountHolderName:
      type: string
      maxLength: 22
      example: John Smith
      description: 'ACH account holder''s name

        '
    TransactionResponseCodeACHDispute:
      type: string
      minLength: 1
      maxLength: 1
      readOnly: true
      example: A
      enum:
      - D
      description: "Code indicating the Shift4 host response.        \n\nValue  | Description | Details\n-------|-------------|--------\nD      | Declined    | The ACH request is declined. \n"
    ErrorCodeNoCondition:
      type: integer
      maxLength: 5
      readOnly: true
      example: 64100
      description: '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:
      type: string
      example: PC
      minLength: 2
      maxLength: 2
      description: "Bank account type\n\nValue | Description \n------|---------------\nPC    | Personal Checking\nPS    | Personal Savings\nCC    | Corporate Checking\nCS    | Corporate Savings\n"
    webhook_ach_refund_status_update:
      title: ACH Refund Status Update
      type: object
      properties:
        event:
          type: object
          properties:
            type:
              type: string
              description: '`ach.refund.status_update`


                Occurs when the status of the ACH refund request is updated.

                '
        token:
          $ref: '#/components/schemas/TokenACH'
        transaction:
          type: object
          properties:
            authSource:
              $ref: '#/components/schemas/TransactionAuthSourceAPM'
            responseCode:
              type: string
              minLength: 1
              maxLength: 1
              readOnly: true
              example: A
              enum:
              - A
              - D
              - F
              description: "Code indicating the Shift4 host response.        \n\nValue  | Description | Details\n-------|-------------|--------\nA      | Approved    | The ACH request is approved.\nD      | Declined    | The ACH request is declined. \nF      | Funded      | The ACH request is refunded.\n"
            invoice:
              $ref: '#/components/schemas/TransactionInvoice'
            hostResponse:
              $ref: '#/components/schemas/HostResponseACH'
        notificationId:
          $ref: '#/components/schemas/NotificationId'
        server:
          type: object
          properties:
            name:
              $ref: '#/components/schemas/ServerName'
      example:
        event:
          type: ach.refund.status_update
        token:
          value: '9829283019231234'
          type: ACH
        transaction:
          authSource: A
          responseCode: A
          invoice: '192029'
        notificationId: 6ca3c55e-1b7c-4cad-8ae2-cac052b5510d
        server:
          name: TM01CE
    ErrorNoPrimarySecondary:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/ErrorCodeNoCondition'
        severity:
          $ref: '#/components/schemas/ErrorSeverity'
        shortText:
          $ref: '#/components/schemas/ErrorShortText'
        longText:
          $ref: '

# --- truncated at 32 KB (61 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/shift4/refs/heads/main/openapi/shift4-ach-api-openapi.yml