Initiate a transfer
Initiate a transfer between funding sources from a Dwolla Account or API Customer resource. Supports ACH, Instant Payments (RTP/FedNow), Push-to-Debit Card, and wire transfers with optional expedited clearing, facilitator fees, metadata, and correlation IDs for enhanced traceability. Includes idempotency key support to prevent duplicate transfers and extensive customization options for addenda records and processing channels. Returns the location of the created transfer resource for tracking and management.
POST https://api-sandbox.dwolla.com/transfers
Accept: application/vnd.dwolla.v1.hal+json
Content-Type: application/vnd.dwolla.v1.hal+json
Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY
{
"_links": {
"source": {
"href": "https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4"
},
"destination": {
"href": "https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db"
}
},
"amount": {
"currency": "USD",
"value": "1.00"
},
"clearing": {
"source": "standard",
"destination": "next-available"
},
"achDetails": {
"source": {
"addenda": {
"values": ["ABC123_AddendaValue"]
}
},
"destination": {
"addenda": {
"values": ["ZYX987_AddendaValue"]
}
}
},
"instantDetails": {
"destination": {
"remittanceData": "ABC_123 Remittance Data"
}
},
"fees": [
{
"_links": {
"charge-to": {
"href": "https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8"
}
},
"amount": {
"value": "4.00",
"currency": "USD"
}
}
],
"metadata": {
"key": "value"
},
"correlationId": "6d127333-69e9-4c2b-8cae-df850228e130",
"processingChannel": {
"destination": "instant"
}
}// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node
var requestBody = {
_links: {
source: {
href: "https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4",
},
destination: {
href: "https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db",
},
},
amount: {
currency: "USD",
value: "1.00",
},
clearing: {
source: "standard",
destination: "next-available",
},
achDetails: {
source: {
addenda: {
values: ["ABC123_AddendaValue"],
},
},
destination: {
addenda: {
values: ["ZYX987_AddendaValue"],
},
},
},
instantDetails: {
destination: {
remittanceData: "ABC_123 Remittance Data",
},
},
fees: [
{
_links: {
"charge-to": {
href: "https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8",
},
},
amount: {
value: "4.00",
currency: "USD",
},
},
],
metadata: {
key: "value",
},
correlationId: "6d127333-69e9-4c2b-8cae-df850228e130",
processingChannel: {
destination: "instant",
},
};
dwolla
.post("transfers", requestBody)
.then((res) => res.headers.get("location")); // => 'https://api-sandbox.dwolla.com/transfers/0e6b8c1e-7b6e-4b2e-8e2e-1b2e2e2e2e2e'# Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python
request_body = {
'_links': {
'source': {
'href': 'https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4'
},
'destination': {
'href': 'https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db'
}
},
'amount': {
'currency': 'USD',
'value': '1.00'
},
'clearing': {
'source': 'standard',
'destination': 'next-available'
},
'achDetails': {
'source': {
'addenda': {
'values': ['ABC123_AddendaValue']
}
},
'destination': {
'addenda': {
'values': ['ZYX987_AddendaValue']
}
}
},
'instantDetails': {
'destination': {
'remittanceData': 'ABC_123 Remittance Data'
}
},
'fees': [
{
'_links': {
'charge-to': {
'href': 'https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8'
}
},
'amount': {
'value': '4.00',
'currency': 'USD'
}
}
],
'metadata': {
'key': 'value'
},
'correlationId': '6d127333-69e9-4c2b-8cae-df850228e130',
'processingChannel': {
'destination': 'instant'
}
}
transfer = app_token.post('transfers', request_body)
transfer.headers['location'] # => 'https://api-sandbox.dwolla.com/transfers/0e6b8c1e-7b6e-4b2e-8e2e-1b2e2e2e2e2e'<?php
// Using dwollaswagger - https://github.com/Dwolla/dwolla-swagger-php
$transfersApi = new DwollaSwagger\TransfersApi($apiClient);
$transfer = $transfersApi->create([
'_links' => [
'source' => [
'href' => 'https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4',
],
'destination' => [
'href' => 'https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db',
]
],
'amount' => [
'currency' => 'USD',
'value' => '1.00'
],
'clearing' => [
'source' => 'standard',
'destination' => 'next-available'
],
'achDetails' => [
'source' => [
'addenda' => [
'values' => ['ABC123_AddendaValue']
]
],
'destination' => [
'addenda' => [
'values' => ['ZYX987_AddendaValue']
]
]
],
'instantDetails' => [
'destination' => [
'remittanceData' => 'ABC_123 Remittance Data'
]
],
'fees' => [
[
'_links' => [
'charge-to' => [
'href' => 'https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8',
]
],
'amount' => [
'value' => '4.00',
'currency' => 'USD'
]
]
],
'metadata' => [
'key' => 'value'
],
'correlationId' => '6d127333-69e9-4c2b-8cae-df850228e130',
'processingChannel' => [
'destination' => 'instant'
]
]);
$transfer; # => "https://api-sandbox.dwolla.com/transfers/0e6b8c1e-7b6e-4b2e-8e2e-1b2e2e2e2e2e"
?># Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby
request_body = {
:_links => {
:source => {
:href => "https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4"
},
:destination => {
:href => "https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db"
}
},
:amount => {
:currency => "USD",
:value => "1.00"
},
:clearing => {
:source => "standard",
:destination => "next-available"
},
:achDetails => {
:source => {
:addenda => {
:values => ["ABC123_AddendaValue"]
}
},
:destination => {
:addenda => {
:values => ["ZYX987_AddendaValue"]
}
}
},
:instantDetails => {
:destination => {
:remittanceData => "ABC_123 Remittance Data"
}
},
:fees => [
{
:_links => {
:"charge-to" => {
:href => "https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8"
}
},
:amount => {
:value => "4.00",
:currency => "USD"
}
}
],
:metadata => {
:key => "value"
},
:correlationId => "6d127333-69e9-4c2b-8cae-df850228e130",
:processingChannel => {
:destination => "instant"
}
}
transfer = app_token.post "transfers", request_body
transfer.response_headers[:location] # => "https://api-sandbox.dwolla.com/transfers/0e6b8c1e-7b6e-4b2e-8e2e-1b2e2e2e2e2e"{
"code": "ValidationError",
"message": "Validation error(s) present. See embedded errors list for more details.",
"_embedded": {
"errors": [
{
"code": "Invalid",
"message": "Funding source not found.",
"path": "/_links/source/href",
"_links": {}
}
]
}
}{
"code": "Forbidden",
"message": "Invalid Funds Flow: this operation requires the funds flow 'Facilitate' to be enabled"
}{
"code": "TooManyRequests",
"message": "Concurrent transfers with the given funding source are not supported. Please wait a short period of time before re-attempting the request."
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
The media type of the response. Must be application/vnd.dwolla.v1.hal+json
application/vnd.dwolla.v1.hal+json Body
Parameters to initiate a transfer
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Real-Time Payments (RTP) specific transaction details.
Show child attributes
Show child attributes
Instant Payments specific transaction details for both RTP and FedNow networks.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
created
Was this page helpful?
POST https://api-sandbox.dwolla.com/transfers
Accept: application/vnd.dwolla.v1.hal+json
Content-Type: application/vnd.dwolla.v1.hal+json
Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY
{
"_links": {
"source": {
"href": "https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4"
},
"destination": {
"href": "https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db"
}
},
"amount": {
"currency": "USD",
"value": "1.00"
},
"clearing": {
"source": "standard",
"destination": "next-available"
},
"achDetails": {
"source": {
"addenda": {
"values": ["ABC123_AddendaValue"]
}
},
"destination": {
"addenda": {
"values": ["ZYX987_AddendaValue"]
}
}
},
"instantDetails": {
"destination": {
"remittanceData": "ABC_123 Remittance Data"
}
},
"fees": [
{
"_links": {
"charge-to": {
"href": "https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8"
}
},
"amount": {
"value": "4.00",
"currency": "USD"
}
}
],
"metadata": {
"key": "value"
},
"correlationId": "6d127333-69e9-4c2b-8cae-df850228e130",
"processingChannel": {
"destination": "instant"
}
}// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node
var requestBody = {
_links: {
source: {
href: "https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4",
},
destination: {
href: "https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db",
},
},
amount: {
currency: "USD",
value: "1.00",
},
clearing: {
source: "standard",
destination: "next-available",
},
achDetails: {
source: {
addenda: {
values: ["ABC123_AddendaValue"],
},
},
destination: {
addenda: {
values: ["ZYX987_AddendaValue"],
},
},
},
instantDetails: {
destination: {
remittanceData: "ABC_123 Remittance Data",
},
},
fees: [
{
_links: {
"charge-to": {
href: "https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8",
},
},
amount: {
value: "4.00",
currency: "USD",
},
},
],
metadata: {
key: "value",
},
correlationId: "6d127333-69e9-4c2b-8cae-df850228e130",
processingChannel: {
destination: "instant",
},
};
dwolla
.post("transfers", requestBody)
.then((res) => res.headers.get("location")); // => 'https://api-sandbox.dwolla.com/transfers/0e6b8c1e-7b6e-4b2e-8e2e-1b2e2e2e2e2e'# Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python
request_body = {
'_links': {
'source': {
'href': 'https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4'
},
'destination': {
'href': 'https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db'
}
},
'amount': {
'currency': 'USD',
'value': '1.00'
},
'clearing': {
'source': 'standard',
'destination': 'next-available'
},
'achDetails': {
'source': {
'addenda': {
'values': ['ABC123_AddendaValue']
}
},
'destination': {
'addenda': {
'values': ['ZYX987_AddendaValue']
}
}
},
'instantDetails': {
'destination': {
'remittanceData': 'ABC_123 Remittance Data'
}
},
'fees': [
{
'_links': {
'charge-to': {
'href': 'https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8'
}
},
'amount': {
'value': '4.00',
'currency': 'USD'
}
}
],
'metadata': {
'key': 'value'
},
'correlationId': '6d127333-69e9-4c2b-8cae-df850228e130',
'processingChannel': {
'destination': 'instant'
}
}
transfer = app_token.post('transfers', request_body)
transfer.headers['location'] # => 'https://api-sandbox.dwolla.com/transfers/0e6b8c1e-7b6e-4b2e-8e2e-1b2e2e2e2e2e'<?php
// Using dwollaswagger - https://github.com/Dwolla/dwolla-swagger-php
$transfersApi = new DwollaSwagger\TransfersApi($apiClient);
$transfer = $transfersApi->create([
'_links' => [
'source' => [
'href' => 'https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4',
],
'destination' => [
'href' => 'https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db',
]
],
'amount' => [
'currency' => 'USD',
'value' => '1.00'
],
'clearing' => [
'source' => 'standard',
'destination' => 'next-available'
],
'achDetails' => [
'source' => [
'addenda' => [
'values' => ['ABC123_AddendaValue']
]
],
'destination' => [
'addenda' => [
'values' => ['ZYX987_AddendaValue']
]
]
],
'instantDetails' => [
'destination' => [
'remittanceData' => 'ABC_123 Remittance Data'
]
],
'fees' => [
[
'_links' => [
'charge-to' => [
'href' => 'https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8',
]
],
'amount' => [
'value' => '4.00',
'currency' => 'USD'
]
]
],
'metadata' => [
'key' => 'value'
],
'correlationId' => '6d127333-69e9-4c2b-8cae-df850228e130',
'processingChannel' => [
'destination' => 'instant'
]
]);
$transfer; # => "https://api-sandbox.dwolla.com/transfers/0e6b8c1e-7b6e-4b2e-8e2e-1b2e2e2e2e2e"
?># Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby
request_body = {
:_links => {
:source => {
:href => "https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4"
},
:destination => {
:href => "https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db"
}
},
:amount => {
:currency => "USD",
:value => "1.00"
},
:clearing => {
:source => "standard",
:destination => "next-available"
},
:achDetails => {
:source => {
:addenda => {
:values => ["ABC123_AddendaValue"]
}
},
:destination => {
:addenda => {
:values => ["ZYX987_AddendaValue"]
}
}
},
:instantDetails => {
:destination => {
:remittanceData => "ABC_123 Remittance Data"
}
},
:fees => [
{
:_links => {
:"charge-to" => {
:href => "https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8"
}
},
:amount => {
:value => "4.00",
:currency => "USD"
}
}
],
:metadata => {
:key => "value"
},
:correlationId => "6d127333-69e9-4c2b-8cae-df850228e130",
:processingChannel => {
:destination => "instant"
}
}
transfer = app_token.post "transfers", request_body
transfer.response_headers[:location] # => "https://api-sandbox.dwolla.com/transfers/0e6b8c1e-7b6e-4b2e-8e2e-1b2e2e2e2e2e"{
"code": "ValidationError",
"message": "Validation error(s) present. See embedded errors list for more details.",
"_embedded": {
"errors": [
{
"code": "Invalid",
"message": "Funding source not found.",
"path": "/_links/source/href",
"_links": {}
}
]
}
}{
"code": "Forbidden",
"message": "Invalid Funds Flow: this operation requires the funds flow 'Facilitate' to be enabled"
}{
"code": "TooManyRequests",
"message": "Concurrent transfers with the given funding source are not supported. Please wait a short period of time before re-attempting the request."
}