---
title: "List ACH payments"
method: GET
path: "/ach"
tags: ["ACH"]
---

# List ACH payments

`GET /ach`

List your ACH payments

## Query parameters

- `status` 'CREATED' | 'AWAITING_APPROVAL' | 'APPROVAL_DENIED' | 'PROCESSING' | 'SETTLED' | 'FAILED' | 'RETURNED' | 'CANCELED'
- `direction` 'debit' | 'credit'
- `externalPartyId` string
- `externalPartyAccountId` string
- `limit` integer
- `cursor` string

## Headers

- `X-Agent-ID` string, nullable
- `X-Instance-ID` string, nullable

## Response `200`

Successful Response

- object
  - `data` object[], required
    - `type` 'ach', required
    - `id` string, required
    - `attributes` object, required
      - `direction` 'debit' | 'credit', required
      - `amount` integer, required — Integer amount in the minor units of currency.
      - `currency` 'USD', required
      - `status` 'CREATED' | 'AWAITING_APPROVAL' | 'APPROVAL_DENIED' | 'PROCESSING' | 'SETTLED' | 'FAILED' | 'RETURNED' | 'CANCELED', required
      - `companyEntryDescription` string, required — The company entry description requested at creation. Echoes the create input verbatim; see submittedDescriptor for what was sent to the bank.
      - `secCode` 'WEB' | 'PPD' | 'TEL' | 'CCD', required
      - `submittedDescriptor` object, required
        - `companyName` string, required — Company name submitted on the ACH payment.
        - `companyEntryDescription` string, required — Company entry description submitted on the ACH payment.
      - `traceNumber` string, nullable, required
      - `failure` object, nullable, required
        - `reason` string, nullable, required
        - `code` string, nullable, required
      - `return` object, nullable, required
        - `code` string, required
        - `reason` string, nullable, required
        - `returnedAt` string, required
        - `dishonoredAt` string, nullable, required
        - `contestedAt` string, nullable, required
        - `fundsUnlockedAt` string, nullable, required
      - `submittedAt` string, nullable, required
      - `settledAt` string, nullable, required — When the transfer settled at the receiving bank. Settlement is the ACH resting state; a return can still arrive afterward.
      - `expectedAvailableAt` string, nullable, required — Expected availability time, when known.
      - `terminalAt` string, nullable, required
      - `createdAt` string, required
      - `updatedAt` string, required
    - `relationships` object, required
      - `customerParty` object, required
        - `data` object, required — Related resource identifier.
          - `type` 'party', required
          - `id` string, required
      - `wallet` object, required
        - `data` object, required — Related resource identifier.
          - `type` 'wallet', required
          - `id` string, required
      - `externalParty` object, required
        - `data` object, required — Related resource identifier.
          - `type` 'external_party', required
          - `id` string, required
      - `externalPartyAccount` object, required
        - `data` object, required — Related resource identifier.
          - `type` 'external_party_account', required
          - `id` string, required
      - `mandate` object, required
        - `data` object, nullable, required — Related resource identifier.
          - `type` 'mandate', required
          - `id` string, required
  - `meta` object, required
    - `pagination` object, required
      - `hasMore` boolean, required — Whether more results are available.
      - `nextCursor` string, nullable, required — Cursor for the next page, or null when there are no more results.

## Other responses

- `400` — Validation Error
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found. Returned when the resource does not exist, or when it exists but is not accessible to your account. The two cases are intentionally indistinguishable, so that resource IDs cannot be enumerated by probing.
- `409` — Conflict
- `422` — Validation Error
- `428` — Precondition Required
- `429` — Too Many Requests
- `500` — Internal Server Error
- `501` — Not Implemented
- `502` — Bad Gateway
- `503` — Service Unavailable

---

[API](https://skmtc.net/natural/apis/natural-api.md) · [All operations](https://skmtc.net/natural/apis/natural-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/natural/natural-api/revisions/c2c65e052711/schema)
