---
title: "ACH Refund"
method: POST
path: "/ach/refund"
tags: ["ACH"]
---

# ACH Refund

`POST /ach/refund`

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.

## Headers

- `InterfaceVersion` string, required
- `InterfaceName` string, required
- `CompanyName` string, required
- `AccessToken` string, uuid, required

## Request body

- union
  - AchRefundBankaccount
    - `dateTime` string, ISO 8601, required — 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 example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
    - `amount` AmountACH, required — Object containing information regarding the amount being requested. The `total` field within the object is required and specifies the amount being requested.
      - `total` number, required — The amount being processed for the ACH transaction. The amount must be greater than zero with a maximum amount of 99999999.99.
    - `transaction` object, required
      - `invoice` string, required — 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 a batch in Shift4's Gateway.
      - `originalInvoice` string, required — 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.**
      - `vendorReference` string — Optional field for information that can be searched in the merchant portal.
    - `ach` object, required
      - `accountNumber` string, required — Bank Account Number. Do not include any dashes, spaces, or additional zeros.
      - `routingNumber` string, required — The routing number identifying the bank.
      - `accountType` string, required — Bank account type Value | Description ------|--------------- PC | Personal Checking PS | Personal Savings CC | Corporate Checking CS | Corporate Savings
      - `accountHolderName` string, required — ACH account holder's name
    - `sourceIp` string, required — Public source IP Address where the request originates, not the IP Address of the web server.
  - AchRefundTokenGtv
    - `dateTime` string, ISO 8601, required — 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 example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
    - `amount` AmountACH, required — Object containing information regarding the amount being requested. The `total` field within the object is required and specifies the amount being requested.
      - `total` number, required — The amount being processed for the ACH transaction. The amount must be greater than zero with a maximum amount of 99999999.99.
    - `transaction` object, required
      - `invoice` string, required — 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 a batch in Shift4's Gateway.
      - `originalInvoice` string, required — 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.**
      - `vendorReference` string — Optional field for information that can be searched in the merchant portal.
    - `token` TokenACH, required
      - `value` string, required — The token representing the customer's bank account credentials.
      - `type` 'ACH' — Specifies the type of token. Value = `ACH`
    - `sourceIp` string, required — Public source IP Address where the request originates, not the IP Address of the web server.

## Response `200`

Transaction was processed

- object
  - `result` object[]
    - `dateTime` string, ISO 8601 — 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 example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
    - `amount` object — Object containing information regarding the amount being requested. The `total` field within the object is required and specifies the amount being requested.
      - `total` 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.
    - `merchant` MerchantResponse
      - `mid` number — The merchant ID associated with the merchant account.
      - `name` string — The merchant’s business name as configured with Shift4.
    - `token` TokenACH
      - `value` string, required — The token representing the customer's bank account credentials.
      - `type` 'ACH' — Specifies the type of token. Value = `ACH`
    - `server` Server
      - `name` string — The name of the server that processed the request.
    - `transaction` object
      - `authSource` 'A' — In a response, a code returned by the processor to indicate which host issued the response. Value | Description -------|---------------------------- A | APM (Online)
      - `invoice` 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 a batch in Shift4's Gateway.
      - `originalInvoice` 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 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.**
      - `responseCode` 'P' | 'D' — Code indicating the Shift4 host response. Value | Description | Details -------|-------------|-------- P | Pending | The ACH transaction is pending D | Decline | The ACH transaciton was declined. e | Error | The ACH transaction resulted in an error.
      - `vendorReference` string — Optional field for information that can be searched in the merchant portal.
    - `notificationId` string, uuid — Notification ID value generated by Shift4 and returned in the response. Used for matching webhook notifications back to their original request.

## Other responses

- `400` — Error
- `504` — Timeout

---

[API](https://skmtc.dev/shift4/apis/shift4-payment-api.md) · [All operations](https://skmtc.dev/shift4/apis/shift4-payment-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/shift4/shift4-payment-api/revisions/2f85c87cc9e5/schema)
