---
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
    - `destination` object
      - `remittanceData` string
  - `correlationId` string
  - `processingChannel` object
    - `destination` string

## Response `201`

created

## Other responses

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

## Changes

- **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/8a20e7000645/schema)
