# Create an Inbound Transfer

Creates an InboundTransfer to pull funds from a bank account into a financial account. Per-transfer and rolling weekly limits vary by account and payment rail. See [transfer limits](https://docs.stripe.com/treasury/add-funds.md#transfer-limits).

## Request

```curl
curl -X POST https://api.stripe.com/v2/money_management/inbound_transfers \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-10-28.endive" \
  --json '{
    "description": "April Payouts",
    "from": {
        "payment_method": "usba_test_61P22mHGGhTkqVEx416Nr2cJ8cSQabKn4q38nZ59E7ea"
    },
    "to": {
        "financial_account": "fa_test_65Nyg0pdsXOSN32kkjg16Nr2cJ8cSQabKn4q38nZ59E50y",
        "currency": "usd"
    },
    "amount": {
        "value": 101,
        "currency": "usd"
    }
  }'
```

### Response

```json
{
  "id": "ibt_test_61Q58XwKMHh5ha3MI16Nr2cJ8cSQabKn4q38nZ59E6yO",
  "object": "v2.money_management.inbound_transfer",
  "amount": {
    "value": 101,
    "currency": "usd"
  },
  "created": "2024-03-18T18:07:12.619131Z",
  "description": "April Payouts",
  "from": {
    "debited": {
      "value": 101,
      "currency": "usd"
    },
    "payment_method": {
      "type": "payment_methods.us_bank_account",
      "us_bank_account": "usba_test_61P22mHGGhTkqVEx416Nr2cJ8cSQabKn4q38nZ59E7ea"
    }
  },
  "receipt_url": "https://payments.stripe.com/transaction_receipt/CCMQARojCiF3a3NwX3Rlc3RfNk5yMmNKOGNTUWFiS240cTM4blo1OUUohIbirwYyBvlQ2PtS3zpGlI2ZkpO8-dpYhb3KfWs1FlYI9eX2I94gJoeJHXOR0QwwesVCRnQwRgsUQqGFloqKV7McODKkoVKAMiuB5lD9htcDuxRtDA",
  "to": {
    "credited": {
      "value": 101,
      "currency": "usd"
    },
    "financial_account": "fa_test_65Nyg0pdsXOSN32kkjg16Nr2cJ8cSQabKn4q38nZ59E50y"
  },
  "transfer_history": [
    {
      "id": "ibthe_test_61Q58Xw5weaazmsWj16Nr2cJ8cSQabKn4q38nZ59E52W",
      "bank_debit_queued": {},
      "created": "2024-03-18T18:07:12.617Z",
      "effective_at": "2024-03-18T18:07:12.617Z",
      "level": "canonical",
      "type": "bank_debit_queued"
    },
    {
      "id": "ibthe_test_61Q58Y2iAWn3U9kNW16Nr2cJ8cSQabKn4q38nZ59EXzc",
      "bank_debit_processing": {},
      "created": "2024-03-18T18:07:18.403Z",
      "effective_at": "2024-03-18T18:07:18.403Z",
      "level": "canonical",
      "type": "bank_debit_processing"
    },
    {
      "id": "ibthe_test_61Q58Y7wNh292msCP16Nr2cJ8cSQabKn4q38nZ59EPz6",
      "bank_debit_succeeded": {},
      "created": "2024-03-18T18:07:23.103Z",
      "effective_at": "2024-03-18T18:07:23.103Z",
      "level": "canonical",
      "type": "bank_debit_succeeded"
    }
  ],
  "livemode": true
}
```

## Parameters

- [`amount`](https://docs.stripe.com/api/v2/money-management/inbound-transfers/create.md?query=amount) (object, required)
  The amount and currency to credit to the FinancialAccount.

- [`from`](https://docs.stripe.com/api/v2/money-management/inbound-transfers/create.md?query=from) (object, required)
  The verified bank account credential to debit for this InboundTransfer.

- [`to`](https://docs.stripe.com/api/v2/money-management/inbound-transfers/create.md?query=to) (object, required)
  The FinancialAccount and currency to credit with the transferred funds.

- `description` (string, optional)
  An optional, freeform description field intended to store metadata.

## Returns

Returns an [Inbound Transfer object](https://docs.stripe.com/api/v2/money-management/inbound-transfers/object.md).

## Error Codes

| HTTP status code | Code | Description |
| --- | --- | --- |
| 400 | financial_account_operation_unsupported_for_property | Operation not supported on Financial Accounts with this type and property. |
| 400 | financial_account_operation_unsupported_for_type | Operation not supported on Financial Accounts with this type. |
| 400 | inbound_transfer_from_closed_financial_account_unsupported | Returned if an InboundTransfer is made to a closed FinancialAccount. |
| 400 | inbound_transfer_from_payment_method_mandate_inactive | Returned when the payment method’s scheme requires an active mandate (e.g. UK Bacs) but no active InboundTransferMandate authorizes Stripe to debit it. |
| 400 | inbound_transfer_from_payment_method_type_unsupported | Returned when a valid, but unsupported PaymentMethod for InboundTransfers is provided. |
| 400 | inbound_transfer_from_payment_method_unusable | Returned if the PM used for the inbound transfer is based on a tokenized account number that is no longer transactable. |
| 400 | inbound_transfer_from_payment_method_unverified | Returned when a PaymentMethod that has not been verified, is provided. |
| 400 | inbound_transfer_not_allowed | Returned if an InboundTransfer is not allowed for risk, legal, regulatory or other unforeseen reasons. |
| 400 | unsupported_operation_with_managed_financial_account | Creation of an object is not allowed with a managed account. |
| 404 | inbound_transfer_from_payment_method_not_found | Returned when a PaymentMethod cannot be found. |
| 404 | inbound_transfer_to_financial_account_not_found | Returned when a FinancialAccount cannot be found. |
| 404 | not_found | The resource wasn’t found. |
| 409 | idempotency_error | An idempotent retry occurred with different request parameters. |
