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.
- Token URL
- /token
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. Only destination is supported; there is no sender-side remittance field. Use destination.remittanceData to convey payment context to the receiver. The metadata and correlationId fields are for your own reconciliation and are not transmitted over the payment network.
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."
}