---
title: "Schedule a planned ACH transaction"
method: POST
path: "/signal/schedule"
tags: ["plaid"]
---

# Schedule a planned ACH transaction

`POST /signal/schedule`

Use `/signal/schedule` to schedule a planned ACH transaction.

## Request body

- SignalScheduleRequest — SignalScheduleRequest defines the request schema for `/signal/schedule`
  - `client_id` string — Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
  - `secret` string — Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
  - `access_token` string, required — The access token associated with the Item for which data is being requested.
  - `account_id` string, required — The Plaid `account_id` of the account that is the funding source for the proposed transaction. The `account_id` is returned in the `/accounts/get` endpoint as well as the [`onSuccess`](https://plaid.com/docs/link/ios/#link-ios-onsuccess-linkSuccess-metadata-accounts-id) callback metadata. This will return an [`INVALID_ACCOUNT_ID`](https://plaid.com/docs/errors/invalid-input/#invalid_account_id) error if the account has been removed at the bank or if the `account_id` is no longer valid.
  - `client_transaction_id` string, required — The unique ID that you would like to use to refer to this transaction. For your convenience mapping your internal data, you could use your internal ID/identifier for this transaction. The max length for this field is 36 characters.
  - `amount` number, double, required — The transaction amount, in USD (e.g. `102.05`)
  - `default_payment_method` 'SAME_DAY_ACH' | 'STANDARD_ACH' | 'MULTIPLE_PAYMENT_METHODS' — The payment method specified in the `default_payment_method` field directly impacts the timing recommendations provided by the API for submitting the debit entry to your processor or ODFI. If unspecified, defaults to `STANDARD_ACH`. `SAME_DAY_ACH`: Same Day ACH (as defined by Nacha). The API assumes the settlement will occur on the same business day if the `/signal/schedule` request is submitted by 6:00 PM UTC. Note: The actual cutoff time can vary depending on your payment processor or ODFI. Nacha has established three processing windows for Same Day ACH (Eastern Time): 10:30 AM, 2:45 PM, and 4:45 PM. `STANDARD_ACH`: Standard ACH (as defined by Nacha), typically settled one to three business days after submission. `MULTIPLE_PAYMENT_METHODS`: Indicates that there is no default debit rail or multiple payment methods are available, and the transaction could use any of them based on customer policy or availability.

## Response `200`

OK

- SignalScheduleResponse — SignalScheduleResponse defines the response schema for `/signal/schedule`
  - `optimal_date` string, date, nullable, required — The recommended optimal date to submit the debit entry, formatted in ISO 8601 "YYYY-MM-DD" (e.g., "2024-03-30"). The `optimal_date` is derived from the date with rank = 1 in the following recommendations array. NOTE: The `default_payment_method` field specified in the request will affect the recommendation, since we're accounting for debit settlement time. The debit scheduling evaluation starts from the day the /signal/schedule request is submitted (Day 0) or the next banking day if the submission day is not a banking day, and extends through the following five banking days (Day 1 to Day 5). If no date within this period is considered likely to result in a successful debit attempt, `null` will be returned for the `optimal_date`.
  - `recommendations` SignalScheduleRecommendation[], required — This array provides a date-by-date evaluation of debit submission recommendations within the five banking day evaluation period. Each object in the array represents a retry recommendation for a specific date.
    - `date` string, date — The specific date for submitting the debit entry, formatted in ISO 8601 (e.g., "2025-01-17").
    - `recommendation` 'RECOMMENDED' | 'NOT_RECOMMENDED' | 'UNKNOWN' — The recommendation result for that date.
    - `rank` integer, nullable — The rank of the recommendation based on the likelihood of debit success, with 1 representing the most optimal date. Dates with `NOT_RECOMMENDED` or `UNKNOWN` will have rank `null`.
  - `warnings` SignalWarning[], required — If bank information was not available to be used in the Signal Transaction Scores model, this array contains warnings describing why bank data is missing. If you want to receive an API error instead of scores in the case of missing bank data, file a support ticket or contact your Plaid account manager.
    - `warning_type` string — A broad categorization of the warning. Safe for programmatic use.
    - `warning_code` string — The warning code identifies a specific kind of warning that pertains to the error causing bank data to be missing. Safe for programmatic use. For more details on warning codes, please refer to Plaid standard error codes documentation. If you receive the `ITEM_LOGIN_REQUIRED` warning, we recommend re-authenticating your user by implementing Link's update mode. This will guide your user to fix their credentials, allowing Plaid to start fetching data again for future requests.
    - `warning_message` string — A developer-friendly representation of the warning type. This may change over time and is not safe for programmatic use.
  - `request_id` string, required — A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.

## Other responses

- `default` — Error response.

---

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