> ## Documentation Index
> Fetch the complete documentation index at: https://docs.methodfi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Per-Payment Funding (push)

> Fund one liability through destination-specific Payment Instrument instructions.

With Per-Payment funding, you create a [Payment Instrument](https://docs.methodfi.com/guides/payments/instruments.md#inbound-ach-and-wire-instructions) for one liability, then send (push) the exact Payment amount to its ACH or wire instructions. When Method receives the funds, it creates the Payment and handles the routing to the liability.

## Flow and schedule

**How money moves**
See how funds enter Method and reach the liability.

### Daily schedule

Send the exact Payment amount early enough for the funds to reach Method by the standard cutoff:

| Rail | Inbound funds cutoff |
| - | - |
| ACH | 1:30 PM CT |
| Wire | 3:30 PM CT |

> [!NOTE]
>
> Per-Payment funding has one cutoff because receipt creates the Payment. Funds must reach Method by the listed time. Do not use the FBO batch-funding deadlines of 1:45 PM CT or 4:15 PM CT for this flow.
>
> Each inbound transfer funds one Payment, so this flow does not require a reserve or prefunded FBO balance. These times apply on banking days and exclude banking holidays. Method confirms the timing for your program during implementation.

## Set up Per-Payment funding

**1. Confirm the reversal setup**

Method must configure a default reversal Account for your team before `payment_instrument.inbound_achwire_payment` becomes available. You can pass `reversal_account` when you create the Payment Instrument to override that default for the instrument.

**2. Check the destination**

Confirm that `payment_instrument.inbound_achwire_payment` is in the liability Account's `products`.

**3. Create the Payment Instrument**

Create an `inbound_achwire_payment` instrument and store its `pmt_inst_*` ID with the liability. See [Inbound ACH and wire instructions](https://docs.methodfi.com/guides/payments/instruments.md#inbound-ach-and-wire-instructions).

**4. Send the funds**

Send the exact amount by ACH or wire to the returned account and routing numbers. Do not also call `POST /payments` for this transfer.

**5. Inspect the Payment**

Handle the `payment.create` [webhook](https://docs.methodfi.com/reference/webhooks/overview.md), retrieve the Payment, and confirm its `payment_instrument`, amount, `status`, and `error`.

> [!WARNING]
>
> Seeing `payment_instrument.inbound_achwire_payment` in the Account's `products` list means that the Account is eligible for inbound funding instructions. Method checks eligibility and your team's setup again when you create the Payment Instrument. Do not send funds until the create request returns completed instructions.

## Set the reversal Account before funding

If you do not know the funding partner's return Account when creating the Payment Instrument, [update its reversal Account](https://docs.methodfi.com/reference/accounts/payment-instruments/update.md) before sending funds. Available from API version `2025-12-01`; existing Payments retain their original reversal Account.

## Reconcile and handle failures

1. Store the Payment Instrument ID and your transfer ID before you send funds.
2. Match the created Payment to the stored `payment_instrument` ID.
3. Compare the Payment amount and status with your transfer record.
4. Continue to process `payment.update` events through `sent`, `posted`, `failed`, `reversed`, or `partially_reversed`.

Rejected inbound transfers can also create a Payment and emit `payment.create` while Method returns the funds. Inspect `status` and `error` before you treat the transfer as accepted.

> [!NOTE]
>
> `source_trace_id` is `null` because the Payment source leg is an internal transfer. Use `sent` as the terminal status for a successful Payment. When available, `posted` confirms that the destination applied the Payment. Posted coverage depends on the destination institution and Account type, so not every Payment reaches `posted`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.