---
title: "Initiate a transfer"
method: POST
path: "/transfers"
tags: ["transfers"]
---

# Initiate a transfer

`POST /transfers`

Initiate a transfer

## Headers

- `Accept` 'application/vnd.dwolla.v1.hal+json', required

## Request body

- object
  - `_links` object, required
    - `source` object
      - `href` string
    - `destination` object
      - `href` string
  - `amount` TransferAmount, required
    - `value` string, required
    - `currency` string, required
  - `metadata` object
  - `fees` object[]
    - `_links` object
      - `charge-to` object
        - `href` string
    - `amount` object
      - `amount` string
      - `currency` string
  - `clearing` object
    - `source` string
    - `destination` string
  - `achDetails` object
    - `source` object
      - `addenda` object
        - `values` string[]
    - `destination` object
      - `addenda` object
        - `values` string[]
  - `rtpDetails` object — Real-Time Payments (RTP) specific transaction details.
    - `destination` object — RTP details for the destination
      - `remittanceData` string — Remittance information for Real-Time Payments, providing context about the payment purpose
  - `instantDetails` object — Instant Payments specific transaction details for both RTP and FedNow networks.
    - `destination` object — Instant payment details for the destination
      - `remittanceData` string — Remittance information for Instant Payments (RTP/FedNow), providing context about the payment purpose
  - `correlationId` string
  - `processingChannel` object
    - `destination` 'real-time-payments' | 'instant'

## Response `201`

created

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `429` — Too Many Requests

## Changes

- **2025-07-24** `a4bc838f854b` — 2 breaking, 1 warning, 3 info
  - request property `processingChannel/destination` was restricted to a list of enum values
  - added the pattern `^[A-Za-z0-9\s\-_\.\/\(\),]*$` to the request property `rtpDetails/destination/remittanceData`
  - the `rtpDetails/destination/remittanceData` request property's maxLength was set to `140`
  - added the new optional request property `instantDetails`
  - …2 more
- **2025-06-06** `231d0268586b` — 1 breaking, 140 info
  - request body became required
  - the response property `code` became required for the status `429`
  - the response property `message` became required for the status `429`
  - the response property `oneOf[subschema #10: InsufficientFundsError]/code` became required for the status `400`
  - …137 more
- **2025-05-23** `4c8b16e05918` — 1 breaking
  - added the new required `header` request parameter `Accept`

[Change history](https://skmtc.dev/dwolla/apis/dwolla-api/changes/transfers/post.md)

---

[API](https://skmtc.dev/dwolla/apis/dwolla-api.md) · [All operations](https://skmtc.dev/dwolla/apis/dwolla-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/dwolla/dwolla-api/revisions/0790dc9b2a0e/schema)
