ACH & SEPA Direct Debit Settlement
How bank debits work
ACH (US) and SEPA (Europe) are bank-to-bank debit payment methods. Unlike card
payments, which are confirmed in real time, bank debits are asynchronous. When a
payment is submitted, the bank accepts the debit instruction but does not
immediately confirm whether the funds are available.
This creates a gap between when the payment appears to succeed and when the funds
are actually collected from the customer's bank account.
SEPA advance notice
SEPA Direct Debit requires advance notice before a customer's account is debited.
To ensure the debit can confidently land on the target date, Shuttle submits the
payment to Stripe 180 hours (approximately 7.5 days) in advance. This means:
- The transaction will appear as successful in Shuttle (or pending, if the
pending-until-settled setting is enabled) well before the customer's bank
account is actually debited. - The customer will not see the debit on their bank statement until the target date.
- This is expected behaviour — the early submission is what allows the target date
to be met reliably.
If the target date is sooner than the 180-hour advance window, Shuttle will submit
the payment to Stripe as soon as possible. In this case, the debit will be
collected at the earliest opportunity but the exact target date cannot be
guaranteed — it depends on when the customer's bank processes the instruction.
The settlement timeline
- Payment submitted — Stripe sends the debit instruction to the customer's
bank. The payment moves to a "processing" state. - Instruction accepted — The bank acknowledges the instruction. Stripe
transitions the payment to "succeeded". At this point, the money has not yet
left the customer's account. - Funds collected — On the settlement date, the bank attempts to collect the
funds. For SEPA, this happens on the target date (3–15 days after submission).
For ACH, this typically takes 4–5 business days. - Settlement window — After the collection attempt, there is a window during
which the payment can still fail. The customer's bank may return the debit due
to insufficient funds, a closed account, or a customer dispute. For SEPA, this
window is up to 6 business days after the target date. For ACH, returns can
occur up to 60 calendar days after the payment.
If a failure occurs after the payment has already been marked as "succeeded",
Stripe reverses the funds from the merchant's balance.
SEPA target date
SEPA payments support a target date, which controls when the customer's bank
account is debited. The target date must be between 3 and 15 days in the future.
If no target date is specified, the debit happens as soon as the bank processes
the instruction.
The target date appears on the customer's bank statement as the debit date,
giving them advance notice of the charge.
How this works in Shuttle
By default, Shuttle marks ACH and SEPA payments as Approved as soon as Stripe
reports the payment as succeeded. This matches Stripe's behaviour but means the
transaction appears complete before the funds have actually been collected.
Pending until settled (opt-in)
For merchants who want more accurate transaction statuses, Shuttle offers a
"Hold payments as pending until settlement window passes" setting for both ACH
and SEPA. This is configured per gateway in the Stripe gateway settings.
When enabled:
- Payment submitted — The transaction is recorded as Pending.
- Stripe confirms the instruction — The transaction stays as Pending (not promoted to Approved).
- Settlement window passes with no issues — The transaction is automatically promoted to Approved.
- Dispute or failure during the window — The transaction is automatically marked as Failed.
This gives merchants a more accurate picture of which payments have genuinely
settled versus which are still at risk of being returned.
Settlement window timing
| Payment method | Settlement window |
|---|---|
| SEPA (with target date) | Target date + 6 business days |
| SEPA (no target date) | Payment date + 6 business days |
| ACH | Payment date + 5 days (with up to 3 retries if processing) |
After the settlement window passes, a background job checks the payment status on
Stripe. If no dispute has been raised, the transaction is promoted to Approved. If
a dispute was raised during the window, the transaction is marked as Failed.
What happens without this setting
If the setting is not enabled, the existing behaviour is unchanged:
- Payments are marked as Approved as soon as Stripe confirms the debit instruction.
- If a dispute or return occurs later, it is handled through the standard dispute
process and may require manual reconciliation.
Enabling the setting
- Navigate to the Stripe gateway settings in the admin portal.
- Under the SEPA or ACH section, enable "Hold payments as pending until settlement window passes".
- Save the gateway settings.
The setting applies to new payments only. Existing transactions are not affected.
Disputes after the settlement window
The settlement window covers the most common failure scenarios (insufficient
funds, bank rejections). However, customers can dispute SEPA payments for up to
8 weeks on a "no questions asked" basis, or up to 13 months if they claim
the debit was unauthorised. ACH disputes can occur up to 60 calendar days after
the payment.
Disputes that arrive after the settlement window has passed (and the transaction
has been promoted to Approved) are handled through the standard dispute process,
the same as any other post-settlement dispute.