From cdf5e8f9f49f9da86ede0a57fb3ab230bfce1513 Mon Sep 17 00:00:00 2001 From: Jack Latourette Date: Wed, 9 Sep 2026 17:16:12 -0700 Subject: [PATCH 1/3] feat(rails): add ACH_SAME_DAY payment rail Grid exposes one ACH rail today, so a platform cannot choose between standard and same-day settlement and the two cannot be priced apart. Add ACH_SAME_DAY alongside ACH in PaymentRail, and to the paymentRails array on UsdAccountInfo. The array is the one that matters at runtime: the generated client validates paymentRails against it, so advertising the rail on a USD account without this entry makes GET /customers/external-accounts/{id} return 500. UsdAccountInfo is composed by PaymentUsdAccountInfo and UsdExternalAccountInfo, so the single entry covers all three generated models. Describe the rails as they will actually behave on release. ACH keeps settling same-business-day on production platforms until an announced date, and already settles next-business-day on sandbox, so the description says so rather than claiming next-day everywhere. An over-cap same-day request settles on the standard schedule and is priced accordingly; it is not rejected. RailFeeConfig accepts the new rail, and its description now says the two are separate rails that each need their own fee config. The docs pages that enumerate rails list the new one: the US row of the country support table, the paymentRail tip on the sending pages, the rail-fee limits on the fees page, and a changelog entry. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01RUF3krYG9C9hShf4iS5Sug --- mintlify/changelog.mdx | 17 +++++++++++++++++ mintlify/openapi.yaml | 13 ++++++++++--- .../payment-flow/assessing-fees.mdx | 3 ++- .../payment-flow/send-payment.mdx | 2 +- mintlify/snippets/country-support.mdx | 2 +- mintlify/snippets/sending/accounts.mdx | 2 +- openapi.yaml | 13 ++++++++++--- .../components/schemas/common/PaymentRail.yaml | 12 ++++++++++++ .../schemas/common/UsdAccountInfo.yaml | 1 + .../schemas/config/RailFeeConfig.yaml | 7 ++++--- 10 files changed, 59 insertions(+), 13 deletions(-) diff --git a/mintlify/changelog.mdx b/mintlify/changelog.mdx index a75bd8247..bb5f5852a 100644 --- a/mintlify/changelog.mdx +++ b/mintlify/changelog.mdx @@ -18,6 +18,23 @@ changes and roadmap, [book a live demo](https://www.lightspark.com/contact) or `CustomerExternalAccountCreateRequest`, in which `customerId` is required. Use `POST /platform/external-accounts` to create an external account owned by the platform itself. +## Same-day ACH is its own payment rail + +`ACH_SAME_DAY` joins `ACH` in `PaymentRail`. Pin it on a quote's destination to request +same-business-day settlement for a USD payout. + +- Grid never selects `ACH_SAME_DAY` for you. It is only used when you name it, so + existing integrations that omit `paymentRail` are unaffected. +- The two rails are priced separately. A `RailFeeConfig` with `rail: ACH_SAME_DAY` + prices same-day sends; your existing `ACH` config keeps pricing standard sends. +- A same-day request above the NACHA per-entry limit settles on the standard schedule + and is priced accordingly. It is not rejected. +- `ACH` will settle on the standard next-business-day schedule. Until a date we + announce in advance, `ACH` continues to settle same-business-day on production + platforms; it already settles next-business-day on sandbox platforms. To guarantee + same-day settlement after that date, request `ACH_SAME_DAY`. + +See [Assessing fees](/payouts-and-b2b/payment-flow/assessing-fees). ## Add cards to Apple Pay, Google Pay, and Samsung Pay from your app diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index 63d1a94b1..3798934cb 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -13107,6 +13107,7 @@ components: enum: - ACH - ACH_COLOMBIA + - ACH_SAME_DAY - BANK_TRANSFER - BRE_B - CIPS @@ -13128,7 +13129,12 @@ components: - UNIONPAY - UPI - WIRE - description: The payment rail used for the transfer. Payment rails represent the underlying payment network or system used to move funds between accounts. + description: |- + The payment rail used for the transfer. Payment rails represent the underlying payment network or system used to move funds between accounts. + + `ACH_SAME_DAY` requests same-business-day settlement for a USD payout and is priced separately. It is subject to the NACHA per-entry same-day limit; a request above that limit settles on the standard schedule and is priced accordingly. + + `ACH` will settle on the standard next-business-day schedule. Until a date we announce in advance, `ACH` continues to settle same-business-day on production platforms; it already settles next-business-day on sandbox platforms. To guarantee same-day settlement after that date, request `ACH_SAME_DAY`. example: ACH RailFeeConfig: allOf: @@ -13140,7 +13146,7 @@ components: - RAIL rail: $ref: '#/components/schemas/PaymentRail' - description: The rail used in the transaction. `ACH`, `RTP`, `FEDNOW` and `WIRE` are accepted today; other rails return a `NOT_IMPLEMENTED` error. + description: The rail used in the transaction. `ACH`, `ACH_SAME_DAY`, `RTP`, `FEDNOW` and `WIRE` are accepted today; other rails return a `NOT_IMPLEMENTED` error. direction: type: string enum: @@ -13159,7 +13165,7 @@ components: - rail - direction - originator - description: 'A fee charged when a transaction uses the specified rail. There can be at most one for a given rail, direction and originator. For example, a config with rail: ACH, direction: OUT, originator: GRID will charge a fee on all outgoing ACH transactions.' + description: 'A fee charged when a transaction uses the specified rail. There can be at most one for a given rail, direction and originator. For example, a config with rail: ACH, direction: OUT, originator: GRID will charge a fee on all outgoing ACH transactions. `ACH` and `ACH_SAME_DAY` are separate rails, so price each one with its own config.' FeeConfigOneOf: oneOf: - $ref: '#/components/schemas/CrossCurrencyTransactionFeeConfig' @@ -16075,6 +16081,7 @@ components: type: string enum: - ACH + - ACH_SAME_DAY - WIRE - RTP - FEDNOW diff --git a/mintlify/payouts-and-b2b/payment-flow/assessing-fees.mdx b/mintlify/payouts-and-b2b/payment-flow/assessing-fees.mdx index 776e1c73b..ebbda3407 100644 --- a/mintlify/payouts-and-b2b/payment-flow/assessing-fees.mdx +++ b/mintlify/payouts-and-b2b/payment-flow/assessing-fees.mdx @@ -49,7 +49,8 @@ Both fee types may apply to the same transaction, e.g. a cross-currency payment only, and the fixed fee must be in that same currency β€” other currencies return `NOT_IMPLEMENTED`. -Rail fees cover `ACH`, `RTP`, `FEDNOW` and `WIRE`, going `OUT`, with the fixed fee in USD. +Rail fees cover `ACH`, `ACH_SAME_DAY`, `RTP`, `FEDNOW` and `WIRE`, going `OUT`, with the fixed fee in USD. +`ACH` and `ACH_SAME_DAY` are separate rails, so price each one with its own config. Anything else returns `NOT_IMPLEMENTED`. Both are expanding β€” support for stablecoin sending currencies such as USDC is planned. diff --git a/mintlify/payouts-and-b2b/payment-flow/send-payment.mdx b/mintlify/payouts-and-b2b/payment-flow/send-payment.mdx index 8eedbd34e..c65c29b39 100644 --- a/mintlify/payouts-and-b2b/payment-flow/send-payment.mdx +++ b/mintlify/payouts-and-b2b/payment-flow/send-payment.mdx @@ -139,7 +139,7 @@ curl -X POST 'https://api.lightspark.com/grid/2025-10-13/quotes' \ - The `paymentRail` field is optional. If omitted, Grid selects a default rail for the destination. Specify a rail (e.g., `ACH`, `WIRE`, `RTP`, `FEDNOW`) when you need to control which payment network processes the transfer. + The `paymentRail` field is optional. If omitted, Grid selects a default rail for the destination. Specify a rail (e.g., `ACH`, `ACH_SAME_DAY`, `WIRE`, `RTP`, `FEDNOW`) when you need to control which payment network processes the transfer. `ACH_SAME_DAY` is never selected for you: it requests same-business-day settlement and is priced separately. Above the NACHA per-entry same-day limit it settles on the standard schedule and is priced accordingly. diff --git a/mintlify/snippets/country-support.mdx b/mintlify/snippets/country-support.mdx index c63a9a71a..500a5e7e8 100644 --- a/mintlify/snippets/country-support.mdx +++ b/mintlify/snippets/country-support.mdx @@ -77,7 +77,7 @@ import { FeatureCard, FeatureCardGrid, FeatureCardList, FeatureCardContainer } f | πŸ‡ΊπŸ‡¬ Uganda | UG | `Mobile Money` (Airtel, MTN) `SWIFT` | | πŸ‡¦πŸ‡ͺ United Arab Emirates | AE | `Bank Transfer` `SWIFT` | | πŸ‡¬πŸ‡§ United Kingdom | GB | `Faster Payments` `SWIFT` | -| πŸ‡ΊπŸ‡Έ United States | US | `ACH` `Wire Transfer` `RTP` `FedNow` `SWIFT` | +| πŸ‡ΊπŸ‡Έ United States | US | `ACH` `Same-day ACH` `Wire Transfer` `RTP` `FedNow` `SWIFT` | | πŸ‡»πŸ‡³ Vietnam | VN | `Bank Transfer` `SWIFT` | | πŸ‡ΏπŸ‡² Zambia | ZM | `Mobile Money` (Airtel, MTN, Zamtel) `SWIFT` | diff --git a/mintlify/snippets/sending/accounts.mdx b/mintlify/snippets/sending/accounts.mdx index 2b518ec6a..ef7286e3c 100644 --- a/mintlify/snippets/sending/accounts.mdx +++ b/mintlify/snippets/sending/accounts.mdx @@ -68,7 +68,7 @@ curl -X POST 'https://api.lightspark.com/grid/2025-10-13/quotes' \ - The `paymentRail` field is optional. If omitted, Grid selects a default rail for the destination. Specify a rail (e.g., `ACH`, `WIRE`, `RTP`, `FEDNOW`) when you need to control which payment network processes the transfer. + The `paymentRail` field is optional. If omitted, Grid selects a default rail for the destination. Specify a rail (e.g., `ACH`, `ACH_SAME_DAY`, `WIRE`, `RTP`, `FEDNOW`) when you need to control which payment network processes the transfer. `ACH_SAME_DAY` is never selected for you: it requests same-business-day settlement and is priced separately. Above the NACHA per-entry same-day limit it settles on the standard schedule and is priced accordingly. diff --git a/openapi.yaml b/openapi.yaml index 63d1a94b1..3798934cb 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -13107,6 +13107,7 @@ components: enum: - ACH - ACH_COLOMBIA + - ACH_SAME_DAY - BANK_TRANSFER - BRE_B - CIPS @@ -13128,7 +13129,12 @@ components: - UNIONPAY - UPI - WIRE - description: The payment rail used for the transfer. Payment rails represent the underlying payment network or system used to move funds between accounts. + description: |- + The payment rail used for the transfer. Payment rails represent the underlying payment network or system used to move funds between accounts. + + `ACH_SAME_DAY` requests same-business-day settlement for a USD payout and is priced separately. It is subject to the NACHA per-entry same-day limit; a request above that limit settles on the standard schedule and is priced accordingly. + + `ACH` will settle on the standard next-business-day schedule. Until a date we announce in advance, `ACH` continues to settle same-business-day on production platforms; it already settles next-business-day on sandbox platforms. To guarantee same-day settlement after that date, request `ACH_SAME_DAY`. example: ACH RailFeeConfig: allOf: @@ -13140,7 +13146,7 @@ components: - RAIL rail: $ref: '#/components/schemas/PaymentRail' - description: The rail used in the transaction. `ACH`, `RTP`, `FEDNOW` and `WIRE` are accepted today; other rails return a `NOT_IMPLEMENTED` error. + description: The rail used in the transaction. `ACH`, `ACH_SAME_DAY`, `RTP`, `FEDNOW` and `WIRE` are accepted today; other rails return a `NOT_IMPLEMENTED` error. direction: type: string enum: @@ -13159,7 +13165,7 @@ components: - rail - direction - originator - description: 'A fee charged when a transaction uses the specified rail. There can be at most one for a given rail, direction and originator. For example, a config with rail: ACH, direction: OUT, originator: GRID will charge a fee on all outgoing ACH transactions.' + description: 'A fee charged when a transaction uses the specified rail. There can be at most one for a given rail, direction and originator. For example, a config with rail: ACH, direction: OUT, originator: GRID will charge a fee on all outgoing ACH transactions. `ACH` and `ACH_SAME_DAY` are separate rails, so price each one with its own config.' FeeConfigOneOf: oneOf: - $ref: '#/components/schemas/CrossCurrencyTransactionFeeConfig' @@ -16075,6 +16081,7 @@ components: type: string enum: - ACH + - ACH_SAME_DAY - WIRE - RTP - FEDNOW diff --git a/openapi/components/schemas/common/PaymentRail.yaml b/openapi/components/schemas/common/PaymentRail.yaml index 652d8c32b..a5f3dffff 100644 --- a/openapi/components/schemas/common/PaymentRail.yaml +++ b/openapi/components/schemas/common/PaymentRail.yaml @@ -2,6 +2,7 @@ type: string enum: - ACH - ACH_COLOMBIA + - ACH_SAME_DAY - BANK_TRANSFER - BRE_B - CIPS @@ -26,4 +27,15 @@ enum: description: >- The payment rail used for the transfer. Payment rails represent the underlying payment network or system used to move funds between accounts. + + + `ACH_SAME_DAY` requests same-business-day settlement for a USD payout and is priced + separately. It is subject to the NACHA per-entry same-day limit; a request above that + limit settles on the standard schedule and is priced accordingly. + + + `ACH` will settle on the standard next-business-day schedule. Until a date we announce + in advance, `ACH` continues to settle same-business-day on production platforms; it + already settles next-business-day on sandbox platforms. To guarantee same-day + settlement after that date, request `ACH_SAME_DAY`. example: ACH diff --git a/openapi/components/schemas/common/UsdAccountInfo.yaml b/openapi/components/schemas/common/UsdAccountInfo.yaml index 0af77eb63..c5fe65494 100644 --- a/openapi/components/schemas/common/UsdAccountInfo.yaml +++ b/openapi/components/schemas/common/UsdAccountInfo.yaml @@ -10,6 +10,7 @@ allOf: type: string enum: - ACH + - ACH_SAME_DAY - WIRE - RTP - FEDNOW diff --git a/openapi/components/schemas/config/RailFeeConfig.yaml b/openapi/components/schemas/config/RailFeeConfig.yaml index e42596882..9fb14b7ea 100644 --- a/openapi/components/schemas/config/RailFeeConfig.yaml +++ b/openapi/components/schemas/config/RailFeeConfig.yaml @@ -8,8 +8,8 @@ allOf: rail: $ref: ../common/PaymentRail.yaml description: >- - The rail used in the transaction. `ACH`, `RTP`, `FEDNOW` and `WIRE` are - accepted today; other rails return a `NOT_IMPLEMENTED` error. + The rail used in the transaction. `ACH`, `ACH_SAME_DAY`, `RTP`, `FEDNOW` and + `WIRE` are accepted today; other rails return a `NOT_IMPLEMENTED` error. direction: type: string enum: @@ -35,4 +35,5 @@ allOf: description: >- A fee charged when a transaction uses the specified rail. There can be at most one for a given rail, direction and originator. For example, a config with rail: ACH, direction: OUT, - originator: GRID will charge a fee on all outgoing ACH transactions. + originator: GRID will charge a fee on all outgoing ACH transactions. `ACH` and + `ACH_SAME_DAY` are separate rails, so price each one with its own config. From 540f83f0ca5e1543212f4c0b98315a2be18fd1cf Mon Sep 17 00:00:00 2001 From: Jack Latourette Date: Mon, 21 Sep 2026 17:29:38 -0700 Subject: [PATCH 2/3] ACH_SAME_DAY over the NACHA limit is rejected, not slowed The description said an over-limit payout 'settles on the standard schedule and is priced accordingly'. Grid now refuses it instead, so a customer who named the fast rail chooses the slower one themselves rather than being moved to it silently. Plain ACH is never refused by this limit. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01RUF3krYG9C9hShf4iS5Sug --- mintlify/openapi.yaml | 2 +- openapi.yaml | 2 +- openapi/components/schemas/common/PaymentRail.yaml | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index 3798934cb..6984122a9 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -13132,7 +13132,7 @@ components: description: |- The payment rail used for the transfer. Payment rails represent the underlying payment network or system used to move funds between accounts. - `ACH_SAME_DAY` requests same-business-day settlement for a USD payout and is priced separately. It is subject to the NACHA per-entry same-day limit; a request above that limit settles on the standard schedule and is priced accordingly. + `ACH_SAME_DAY` requests same-business-day settlement for a USD payout and is priced separately. It is subject to the NACHA per-entry same-day limit, which the network applies to every originator. A payout above that limit is rejected rather than slowed: send it over `ACH` instead, which settles on the standard schedule. `ACH` will settle on the standard next-business-day schedule. Until a date we announce in advance, `ACH` continues to settle same-business-day on production platforms; it already settles next-business-day on sandbox platforms. To guarantee same-day settlement after that date, request `ACH_SAME_DAY`. example: ACH diff --git a/openapi.yaml b/openapi.yaml index 3798934cb..6984122a9 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -13132,7 +13132,7 @@ components: description: |- The payment rail used for the transfer. Payment rails represent the underlying payment network or system used to move funds between accounts. - `ACH_SAME_DAY` requests same-business-day settlement for a USD payout and is priced separately. It is subject to the NACHA per-entry same-day limit; a request above that limit settles on the standard schedule and is priced accordingly. + `ACH_SAME_DAY` requests same-business-day settlement for a USD payout and is priced separately. It is subject to the NACHA per-entry same-day limit, which the network applies to every originator. A payout above that limit is rejected rather than slowed: send it over `ACH` instead, which settles on the standard schedule. `ACH` will settle on the standard next-business-day schedule. Until a date we announce in advance, `ACH` continues to settle same-business-day on production platforms; it already settles next-business-day on sandbox platforms. To guarantee same-day settlement after that date, request `ACH_SAME_DAY`. example: ACH diff --git a/openapi/components/schemas/common/PaymentRail.yaml b/openapi/components/schemas/common/PaymentRail.yaml index a5f3dffff..0b90bf161 100644 --- a/openapi/components/schemas/common/PaymentRail.yaml +++ b/openapi/components/schemas/common/PaymentRail.yaml @@ -30,8 +30,9 @@ description: >- `ACH_SAME_DAY` requests same-business-day settlement for a USD payout and is priced - separately. It is subject to the NACHA per-entry same-day limit; a request above that - limit settles on the standard schedule and is priced accordingly. + separately. It is subject to the NACHA per-entry same-day limit, which the network + applies to every originator. A payout above that limit is rejected rather than slowed: + send it over `ACH` instead, which settles on the standard schedule. `ACH` will settle on the standard next-business-day schedule. Until a date we announce From b55ce40cd55939d63f1e30d0f43545e3eb6ec09a Mon Sep 17 00:00:00 2001 From: Jack Latourette Date: Tue, 22 Sep 2026 10:17:45 -0700 Subject: [PATCH 3/3] docs(rails): state the NACHA same-day cap and that an over-cap payout is refused MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The prose still described the downgrade the spec had already dropped, and the changelog said an over-cap payout "is not rejected" β€” the inverse of what the API does. None of it named the limit, so an integrator could only discover it by being refused. Co-Authored-By: Claude Opus 5 (1M context) --- mintlify/changelog.mdx | 5 +++-- mintlify/openapi.yaml | 2 +- mintlify/payouts-and-b2b/payment-flow/send-payment.mdx | 2 +- mintlify/snippets/sending/accounts.mdx | 2 +- openapi.yaml | 2 +- openapi/components/schemas/common/PaymentRail.yaml | 6 ++++-- 6 files changed, 11 insertions(+), 8 deletions(-) diff --git a/mintlify/changelog.mdx b/mintlify/changelog.mdx index bb5f5852a..ae18fa347 100644 --- a/mintlify/changelog.mdx +++ b/mintlify/changelog.mdx @@ -27,8 +27,9 @@ same-business-day settlement for a USD payout. existing integrations that omit `paymentRail` are unaffected. - The two rails are priced separately. A `RailFeeConfig` with `rail: ACH_SAME_DAY` prices same-day sends; your existing `ACH` config keeps pricing standard sends. -- A same-day request above the NACHA per-entry limit settles on the standard schedule - and is priced accordingly. It is not rejected. +- `ACH_SAME_DAY` is capped at $1,000,000 per entry by the NACHA same-day limit, rising + to $10,000,000 on 2027-09-17. A payout above the limit is rejected rather than slowed; + send it over `ACH` instead. - `ACH` will settle on the standard next-business-day schedule. Until a date we announce in advance, `ACH` continues to settle same-business-day on production platforms; it already settles next-business-day on sandbox platforms. To guarantee diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index 6984122a9..0c180aaa4 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -13132,7 +13132,7 @@ components: description: |- The payment rail used for the transfer. Payment rails represent the underlying payment network or system used to move funds between accounts. - `ACH_SAME_DAY` requests same-business-day settlement for a USD payout and is priced separately. It is subject to the NACHA per-entry same-day limit, which the network applies to every originator. A payout above that limit is rejected rather than slowed: send it over `ACH` instead, which settles on the standard schedule. + `ACH_SAME_DAY` requests same-business-day settlement for a USD payout and is priced separately. It is subject to the NACHA per-entry same-day limit, which the network applies to every originator: $1,000,000 per entry, rising to $10,000,000 on 2027-09-17. A payout above that limit is rejected rather than slowed β€” check the amount before requesting this rail, or send it over `ACH`, which settles on the standard schedule and has no such limit. `ACH` will settle on the standard next-business-day schedule. Until a date we announce in advance, `ACH` continues to settle same-business-day on production platforms; it already settles next-business-day on sandbox platforms. To guarantee same-day settlement after that date, request `ACH_SAME_DAY`. example: ACH diff --git a/mintlify/payouts-and-b2b/payment-flow/send-payment.mdx b/mintlify/payouts-and-b2b/payment-flow/send-payment.mdx index c65c29b39..22c514d29 100644 --- a/mintlify/payouts-and-b2b/payment-flow/send-payment.mdx +++ b/mintlify/payouts-and-b2b/payment-flow/send-payment.mdx @@ -139,7 +139,7 @@ curl -X POST 'https://api.lightspark.com/grid/2025-10-13/quotes' \ - The `paymentRail` field is optional. If omitted, Grid selects a default rail for the destination. Specify a rail (e.g., `ACH`, `ACH_SAME_DAY`, `WIRE`, `RTP`, `FEDNOW`) when you need to control which payment network processes the transfer. `ACH_SAME_DAY` is never selected for you: it requests same-business-day settlement and is priced separately. Above the NACHA per-entry same-day limit it settles on the standard schedule and is priced accordingly. + The `paymentRail` field is optional. If omitted, Grid selects a default rail for the destination. Specify a rail (e.g., `ACH`, `ACH_SAME_DAY`, `WIRE`, `RTP`, `FEDNOW`) when you need to control which payment network processes the transfer. `ACH_SAME_DAY` is never selected for you: it requests same-business-day settlement and is priced separately. It is capped at $1,000,000 per entry by the NACHA same-day limit (rising to $10,000,000 on 2027-09-17); a payout above that is rejected, so send it over `ACH` instead. diff --git a/mintlify/snippets/sending/accounts.mdx b/mintlify/snippets/sending/accounts.mdx index ef7286e3c..5f2b88622 100644 --- a/mintlify/snippets/sending/accounts.mdx +++ b/mintlify/snippets/sending/accounts.mdx @@ -68,7 +68,7 @@ curl -X POST 'https://api.lightspark.com/grid/2025-10-13/quotes' \ - The `paymentRail` field is optional. If omitted, Grid selects a default rail for the destination. Specify a rail (e.g., `ACH`, `ACH_SAME_DAY`, `WIRE`, `RTP`, `FEDNOW`) when you need to control which payment network processes the transfer. `ACH_SAME_DAY` is never selected for you: it requests same-business-day settlement and is priced separately. Above the NACHA per-entry same-day limit it settles on the standard schedule and is priced accordingly. + The `paymentRail` field is optional. If omitted, Grid selects a default rail for the destination. Specify a rail (e.g., `ACH`, `ACH_SAME_DAY`, `WIRE`, `RTP`, `FEDNOW`) when you need to control which payment network processes the transfer. `ACH_SAME_DAY` is never selected for you: it requests same-business-day settlement and is priced separately. It is capped at $1,000,000 per entry by the NACHA same-day limit (rising to $10,000,000 on 2027-09-17); a payout above that is rejected, so send it over `ACH` instead. diff --git a/openapi.yaml b/openapi.yaml index 6984122a9..0c180aaa4 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -13132,7 +13132,7 @@ components: description: |- The payment rail used for the transfer. Payment rails represent the underlying payment network or system used to move funds between accounts. - `ACH_SAME_DAY` requests same-business-day settlement for a USD payout and is priced separately. It is subject to the NACHA per-entry same-day limit, which the network applies to every originator. A payout above that limit is rejected rather than slowed: send it over `ACH` instead, which settles on the standard schedule. + `ACH_SAME_DAY` requests same-business-day settlement for a USD payout and is priced separately. It is subject to the NACHA per-entry same-day limit, which the network applies to every originator: $1,000,000 per entry, rising to $10,000,000 on 2027-09-17. A payout above that limit is rejected rather than slowed β€” check the amount before requesting this rail, or send it over `ACH`, which settles on the standard schedule and has no such limit. `ACH` will settle on the standard next-business-day schedule. Until a date we announce in advance, `ACH` continues to settle same-business-day on production platforms; it already settles next-business-day on sandbox platforms. To guarantee same-day settlement after that date, request `ACH_SAME_DAY`. example: ACH diff --git a/openapi/components/schemas/common/PaymentRail.yaml b/openapi/components/schemas/common/PaymentRail.yaml index 0b90bf161..da2b49794 100644 --- a/openapi/components/schemas/common/PaymentRail.yaml +++ b/openapi/components/schemas/common/PaymentRail.yaml @@ -31,8 +31,10 @@ description: >- `ACH_SAME_DAY` requests same-business-day settlement for a USD payout and is priced separately. It is subject to the NACHA per-entry same-day limit, which the network - applies to every originator. A payout above that limit is rejected rather than slowed: - send it over `ACH` instead, which settles on the standard schedule. + applies to every originator: $1,000,000 per entry, rising to $10,000,000 on + 2027-09-17. A payout above that limit is rejected rather than slowed β€” check the + amount before requesting this rail, or send it over `ACH`, which settles on the + standard schedule and has no such limit. `ACH` will settle on the standard next-business-day schedule. Until a date we announce