> ## 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.

# Payment Instruments

> Retrieve card credentials, provision a network token, or create an account number and routing number for ACH or wire payments to a liability Account.

## Payment Instruments

Payment Instruments retrieve existing card credentials, provision a network token, or create an account number and routing number for ACH or wire payments to an existing liability Account. Create one under `/accounts/{acc_id}/payment_instruments` and set `type` to the instrument type that your application needs. You do not submit card or bank credentials in the create request.

Card and network-token instruments let your application charge the Account's card through your payment processor. An inbound ACH/wire instrument creates an account number and routing number that a sender uses to make payments to the liability Account. These instruments can support repeated use while they remain chargeable. Do not pass a Payment Instrument ID as the `source` or `destination` in `POST /payments`. When funds arrive through an inbound ACH/wire instrument, Method creates a Payment that identifies the instrument in its `payment_instrument` field.

Method supports three types of Payment Instruments:

| Type | Description |
| - | - |
| `card` | Card credentials for checkout through your payment processor. |
| `network_token` | A network-provisioned token for tokenized card transactions. |
| `inbound_achwire_payment` | An account number and routing number for making ACH or wire payments to the liability Account. |

<Note>
  Check the Account's `products` array for the specific product: `payment_instrument.card`, `payment_instrument.network_token`, or `payment_instrument.inbound_achwire_payment`. After creation, check the instrument's `status` and `chargeable` fields before you use it. Listen for Payment Instrument webhook events because credentials and availability can change.
</Note>

## Inbound ACH and wire instructions

Use an `inbound_achwire_payment` instrument to receive account and routing numbers that map an inbound transfer to one liability. This type requires API version `2025-12-01` or later.

Method must configure a default reversal Account for your team before `payment_instrument.inbound_achwire_payment` becomes available. You can pass `reversal_account` to override the team default for that instrument. The resolved Account becomes the created Payment's `source` and `reversal_account`. If neither Account resolves, creation fails with `INVALID_REVERSAL_ACCOUNT`.

<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.
</Warning>

```bash theme={null}
curl https://production.methodfi.com/accounts/acc_4m9amk4KFiaQX/payment_instruments \
  -X POST \
  -H "Method-Version: 2026-03-30" \
  -H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "inbound_achwire_payment",
    "inbound_achwire_payment": {
      "reversal_account": "acc_3YPBwaEmTAf4K"
    }
  }'
```

The response contains the inbound instructions:

```json theme={null}
{
  "success": true,
  "data": {
    "id": "pmt_inst_cLbaArHhfDBDf",
    "account_id": "acc_4m9amk4KFiaQX",
    "type": "inbound_achwire_payment",
    "inbound_achwire_payment": {
      "account_number": "2517228863",
      "routing_number": "026015244",
      "reversal_account": "acc_3YPBwaEmTAf4K"
    },
    "status": "completed"
  },
  "message": null
}
```

Store the `pmt_inst_*` ID, then send the exact Payment amount to the instructions. When Method processes the inbound transfer, it creates a Payment and sets `payment_instrument` to that ID.

Do not also call `POST /payments` for the same transfer. Rejected inbound transfers can emit `payment.create`, so inspect the created Payment's `status` and `error` before you treat the funds as accepted.

Use the [Per-Payment Funding guide](/guides/payments/funding-models/per-payment-funding) for cutoff and reconciliation details. For all fields and endpoints, use the [Payment Instruments reference](/reference/accounts/payment-instruments/overview).


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