openapi: 3.1.0
info:
title: Dwolla API - Transfers
description: Dwolla API Documentation
contact:
name: Dwolla Developer Relations Team
url: https://developers.dwolla.com
email: api@dwolla.com
version: '2.0'
termsOfService: https://www.dwolla.com/legal/tos/
license:
name: MIT
url: https://github.com/Dwolla/dwolla-openapi/blob/master/LICENSE
jsonSchemaDialect: https://spec.openapis.org/oas/3.1/dialect/base
servers:
- url: https://api.dwolla.com
description: Production server
- url: https://api-sandbox.dwolla.com
description: Sandbox server
security:
- clientCredentials: []
tags:
- name: transfers
description: Operations related to Transfers
paths:
/transfers:
post:
tags:
- transfers
summary: Initiate a transfer
description: 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.
operationId: initiateTransfer
x-speakeasy-name-override: create
x-codeSamples:
- lang: bash
source: "POST https://api-sandbox.dwolla.com/transfers\nAccept: application/vnd.dwolla.v1.hal+json\n\
Content-Type: application/vnd.dwolla.v1.hal+json\nAuthorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY\n\
\n{\n \"_links\": {\n \"source\": {\n \"href\": \"https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4\"\
\n },\n \"destination\": {\n \"href\": \"https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db\"\
\n }\n },\n \"amount\": {\n \"currency\": \"USD\",\n \"value\": \"1.00\"\n },\n\
\ \"clearing\": {\n \"source\": \"standard\",\n \"destination\": \"next-available\"\n\
\ },\n \"achDetails\": {\n \"source\": {\n \"addenda\": {\n \"values\": [\"\
ABC123_AddendaValue\"]\n }\n },\n \"destination\": {\n \"addenda\": {\n \
\ \"values\": [\"ZYX987_AddendaValue\"]\n }\n }\n },\n \"instantDetails\": {\n\
\ \"destination\": {\n \"remittanceData\": \"ABC_123 Remittance Data\"\n }\n },\n\
\ \"fees\": [\n {\n \"_links\": {\n \"charge-to\": {\n \"href\": \"\
https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8\"\n }\n\
\ },\n \"amount\": {\n \"value\": \"4.00\",\n \"currency\": \"USD\"\n\
\ }\n }\n ],\n \"metadata\": {\n \"key\": \"value\"\n },\n \"correlationId\"\
: \"6d127333-69e9-4c2b-8cae-df850228e130\",\n \"processingChannel\": {\n \"destination\"\
: \"instant\"\n }\n}\n"
- lang: javascript
source: "// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node\nvar requestBody = {\n\
\ _links: {\n source: {\n href: \"https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4\"\
,\n },\n destination: {\n href: \"https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db\"\
,\n },\n },\n amount: {\n currency: \"USD\",\n value: \"1.00\",\n },\n clearing:\
\ {\n source: \"standard\",\n destination: \"next-available\",\n },\n achDetails: {\n\
\ source: {\n addenda: {\n values: [\"ABC123_AddendaValue\"],\n },\n \
\ },\n destination: {\n addenda: {\n values: [\"ZYX987_AddendaValue\"],\n \
\ },\n },\n },\n instantDetails: {\n destination: {\n remittanceData: \"ABC_123\
\ Remittance Data\",\n },\n },\n fees: [\n {\n _links: {\n \"charge-to\"\
: {\n href: \"https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8\"\
,\n },\n },\n amount: {\n value: \"4.00\",\n currency: \"USD\"\
,\n },\n },\n ],\n metadata: {\n key: \"value\",\n },\n correlationId: \"6d127333-69e9-4c2b-8cae-df850228e130\"\
,\n processingChannel: {\n destination: \"instant\",\n },\n};\n\ndwolla\n .post(\"transfers\"\
, requestBody)\n .then((res) => res.headers.get(\"location\")); // => 'https://api-sandbox.dwolla.com/transfers/0e6b8c1e-7b6e-4b2e-8e2e-1b2e2e2e2e2e'\n"
- lang: python
source: "# Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python\nrequest_body = {\n '_links':\
\ {\n 'source': {\n 'href': 'https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4'\n\
\ },\n 'destination': {\n 'href': 'https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db'\n\
\ }\n },\n 'amount': {\n 'currency': 'USD',\n 'value': '1.00'\n },\n 'clearing':\
\ {\n 'source': 'standard',\n 'destination': 'next-available'\n },\n 'achDetails': {\n\
\ 'source': {\n 'addenda': {\n 'values': ['ABC123_AddendaValue']\n }\n \
\ },\n 'destination': {\n 'addenda': {\n 'values': ['ZYX987_AddendaValue']\n\
\ }\n }\n },\n 'instantDetails': {\n 'destination': {\n 'remittanceData':\
\ 'ABC_123 Remittance Data'\n }\n },\n 'fees': [\n {\n '_links': {\n 'charge-to':\
\ {\n 'href': 'https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8'\n\
\ }\n },\n 'amount': {\n 'value': '4.00',\n 'currency': 'USD'\n\
\ }\n }\n ],\n 'metadata': {\n 'key': 'value'\n },\n 'correlationId': '6d127333-69e9-4c2b-8cae-df850228e130',\n\
\ 'processingChannel': {\n 'destination': 'instant'\n }\n}\n\ntransfer = app_token.post('transfers',\
\ request_body)\ntransfer.headers['location'] # => 'https://api-sandbox.dwolla.com/transfers/0e6b8c1e-7b6e-4b2e-8e2e-1b2e2e2e2e2e'\n"
- lang: php
source: "<?php\n// Using dwollaswagger - https://github.com/Dwolla/dwolla-swagger-php\n$transfersApi\
\ = new DwollaSwagger\\TransfersApi($apiClient);\n\n$transfer = $transfersApi->create([\n '_links'\
\ => [\n 'source' => [\n 'href' => 'https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4',\n\
\ ],\n 'destination' => [\n 'href' => 'https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db',\n\
\ ]\n ],\n 'amount' => [\n 'currency' => 'USD',\n 'value' => '1.00'\n ],\n 'clearing'\
\ => [\n 'source' => 'standard',\n 'destination' => 'next-available'\n ],\n 'achDetails'\
\ => [\n 'source' => [\n 'addenda' => [\n 'values' => ['ABC123_AddendaValue']\n\
\ ]\n ],\n 'destination' => [\n 'addenda' => [\n 'values' => ['ZYX987_AddendaValue']\n\
\ ]\n ]\n ],\n 'instantDetails' => [\n 'destination' => [\n 'remittanceData'\
\ => 'ABC_123 Remittance Data'\n ]\n ],\n 'fees' => [\n [\n '_links' => [\n \
\ 'charge-to' => [\n 'href' => 'https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8',\n\
\ ]\n ],\n 'amount' => [\n 'value' => '4.00',\n 'currency' =>\
\ 'USD'\n ]\n ]\n ],\n 'metadata' => [\n 'key' => 'value'\n ],\n 'correlationId'\
\ => '6d127333-69e9-4c2b-8cae-df850228e130',\n 'processingChannel' => [\n 'destination'\
\ => 'instant'\n ]\n]);\n$transfer; # => \"https://api-sandbox.dwolla.com/transfers/0e6b8c1e-7b6e-4b2e-8e2e-1b2e2e2e2e2e\"\
\n?>\n"
- lang: ruby
source: "# Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby\nrequest_body = {\n :_links\
\ => {\n :source => {\n :href => \"https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4\"\
\n },\n :destination => {\n :href => \"https://api-sandbox.dwolla.com/funding-sources/9c7f8d57-cd45-4e7a-bf7a-914dbd6131db\"\
\n }\n },\n :amount => {\n :currency => \"USD\",\n :value => \"1.00\"\n },\n :clearing\
\ => {\n :source => \"standard\",\n :destination => \"next-available\"\n },\n :achDetails\
\ => {\n :source => {\n :addenda => {\n :values => [\"ABC123_AddendaValue\"]\n\
\ }\n },\n :destination => {\n :addenda => {\n :values => [\"ZYX987_AddendaValue\"\
]\n }\n }\n },\n :instantDetails => {\n :destination => {\n :remittanceData\
\ => \"ABC_123 Remittance Data\"\n }\n },\n :fees => [\n {\n :_links => {\n \
\ :\"charge-to\" => {\n :href => \"https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8\"\
\n }\n },\n :amount => {\n :value => \"4.00\",\n :currency =>\
\ \"USD\"\n }\n }\n ],\n :metadata => {\n :key => \"value\"\n },\n :correlationId\
\ => \"6d127333-69e9-4c2b-8cae-df850228e130\",\n :processingChannel => {\n :destination\
\ => \"instant\"\n }\n}\n\ntransfer = app_token.post \"transfers\", request_body\ntransfer.response_headers[:location]\
\ # => \"https://api-sandbox.dwolla.com/transfers/0e6b8c1e-7b6e-4b2e-8e2e-1b2e2e2e2e2e\"\n"
parameters:
- $ref: '#/components/parameters/Accept'
- name: Idempotency-Key
schema:
type: string
in: header
example: 19051a62-3403-11e6-ac61-9e71128cae77
requestBody:
required: true
description: Parameters to initiate a transfer
content:
application/json:
schema:
required:
- _links
- amount
type: object
properties:
_links:
type: object
properties:
source:
type: object
properties:
href:
type: string
destination:
type: object
properties:
href:
type: string
amount:
$ref: '#/components/schemas/TransferAmount'
metadata:
type: object
fees:
type: array
items:
type: object
properties:
_links:
type: object
properties:
charge-to:
type: object
properties:
href:
type: string
amount:
$ref: '#/components/schemas/TransferAmount'
clearing:
type: object
properties:
source:
type: string
destination:
type: string
achDetails:
type: object
properties:
source:
type: object
properties:
addenda:
type: object
properties:
values:
type: array
items:
type: string
destination:
type: object
properties:
addenda:
type: object
properties:
values:
type: array
items:
type: string
rtpDetails:
type: object
description: Real-Time Payments (RTP) specific transaction details.
properties:
destination:
type: object
description: RTP details for the destination
properties:
remittanceData:
type: string
description: 'Remittance information for Real-Time Payments, providing context
about the payment purpose. Acceptable characters: alphanumeric (0-9, a-z,
A-Z), space, and special characters (#,.''&/-@!$%*()_+={}|:;`[]^~\")'
maxLength: 140
pattern: '^[0-9a-zA-Z #,.''&/\-@!$%*()_+={}|:;`\[\]\^\~\\"]+$'
example: ABC_123 Remittance Data
instantDetails:
type: object
description: Instant Payments specific transaction details for both RTP and FedNow networks.
properties:
destination:
type: object
description: Instant payment details for the destination
properties:
remittanceData:
type: string
description: 'Remittance information for Instant Payments (RTP/FedNow), providing
context about the payment purpose. Acceptable characters: alphanumeric (0-9,
a-z, A-Z), space, and special characters (#,.''&/-@!$%*()_+={}|:;`[]^~\")'
maxLength: 140
pattern: '^[0-9a-zA-Z #,.''&/\-@!$%*()_+={}|:;`\[\]\^\~\\"]+$'
example: ABC_123 Remittance Data
correlationId:
type: string
processingChannel:
type: object
properties:
destination:
type: string
enum:
- real-time-payments
- instant
example: instant
responses:
'201':
description: created
headers:
Location:
$ref: '#/components/headers/Location'
'400':
description: Bad Request
headers: {}
content:
application/vnd.dwolla.v1.hal+json:
schema:
oneOf:
- $ref: '#/components/schemas/SourceNotFoundError'
- $ref: '#/components/schemas/ReceiverNotFoundError'
- $ref: '#/components/schemas/InvalidSourceFundingSourceError'
- $ref: '#/components/schemas/SenderRestrictedError'
- $ref: '#/components/schemas/ReceiverRestrictedError'
- $ref: '#/components/schemas/InvalidMetadataError'
- $ref: '#/components/schemas/OperationBlockedError'
- $ref: '#/components/schemas/InvalidAmountLimitError'
- $ref: '#/components/schemas/CannotParseAmountError'
- $ref: '#/components/schemas/InsufficientFundsError'
- $ref: '#/components/schemas/FacilitatorFeeAccountNotFoundError'
- $ref: '#/components/schemas/FacilitatorFeeSumTooLargeError'
- $ref: '#/components/schemas/FacilitatorFeeBelowMinimumError'
- $ref: '#/components/schemas/HighRiskError'
- $ref: '#/components/schemas/IncompatibleHoldingsError'
- $ref: '#/components/schemas/DirectAccountWithoutBankError'
- $ref: '#/components/schemas/SourceSameAsDestinationError'
- $ref: '#/components/schemas/InvalidFacilitatorError'
- $ref: '#/components/schemas/InvalidFacilitatorFeeCollectFromError'
- $ref: '#/components/schemas/InvalidFacilitatorFeeCollectFromCombinationError'
- $ref: '#/components/schemas/InvalidDestinationFundingSourceError'
- $ref: '#/components/schemas/InvalidOrRemovedCardDestinationError'
- $ref: '#/components/schemas/InvalidFacilitatorFeeAmountError'
- $ref: '#/components/schemas/WeeklyReceiveLimitReachedError'
- $ref: '#/components/schemas/InvalidDestinationClearingTypeError'
- $ref: '#/components/schemas/InvalidAmountForDestinationClearingTypeError'
- $ref: '#/components/schemas/InvalidCorrelationIdError'
- $ref: '#/components/schemas/SourceAddendaMaxLengthError'
- $ref: '#/components/schemas/DestinationAddendaMaxLengthError'
- $ref: '#/components/schemas/AchAddendaEntriesNotEnabledForAccountError'
- $ref: '#/components/schemas/PointOfSaleAddendaEntriesNotEnabledForAccountError'
- $ref: '#/components/schemas/IncompatibleAddendaEntriesError'
- $ref: '#/components/schemas/InvalidPointOfSaleAddendaIdentificationCodeError'
- $ref: '#/components/schemas/InvalidPointOfSaleAddendaSerialNumberError'
- $ref: '#/components/schemas/InvalidPointOfSaleAddendaDateError'
- $ref: '#/components/schemas/InvalidPointOfSaleAddendaAddressError'
- $ref: '#/components/schemas/InvalidPointOfSaleAddendaCityError'
- $ref: '#/components/schemas/InvalidPointOfSaleAddendaStateError'
- $ref: '#/components/schemas/TransferExpiredForFeeError'
- $ref: '#/components/schemas/InvalidFeeOdfiError'
- $ref: '#/components/schemas/InvalidSourceBankAccountTypeError'
- $ref: '#/components/schemas/InvalidDestinationBankAccountTypeError'
- $ref: '#/components/schemas/IncompatibleSourceAndDestinationTypesError'
- $ref: '#/components/schemas/SourceNotCardNetworkSettlementError'
- $ref: '#/components/schemas/CardSourceNotAllowedError'
- $ref: '#/components/schemas/IncompatibleSourceForRtpDestinationError'
- $ref: '#/components/schemas/InvalidAmountForDestinationProcessingChannelError'
- $ref: '#/components/schemas/RtpFacilitatorFeeNotSupportedError'
- $ref: '#/components/schemas/RtpUnverifiedSenderNotSupportedError'
- $ref: '#/components/schemas/RtpPersonalToPersonalNotSupportedError'
- $ref: '#/components/schemas/DestinationProcessingChannelNotSupportedError'
- $ref: '#/components/schemas/DestinationRemittanceDataMaxLengthError'
- $ref: '#/components/schemas/WithdrawInvalidAmountError'
- $ref: '#/components/schemas/WithdrawInvalidFundingSourceError'
- $ref: '#/components/schemas/WithdrawAccountRestrictedError'
- $ref: '#/components/schemas/WithdrawInvalidAmountForClearingTypeError'
- $ref: '#/components/schemas/WithdrawInvalidWireBeneficiaryLocalityError'
- $ref: '#/components/schemas/WithdrawInvalidWireBeneficiaryRegionError'
- $ref: '#/components/schemas/WithdrawInvalidWireBeneficiaryCountryError'
- $ref: '#/components/schemas/WithdrawInvalidWireOriginatorToBeneficiaryError'
- $ref: '#/components/schemas/WithdrawProcessingChannelNotSupportedError'
- $ref: '#/components/schemas/WithdrawRtpUnverifiedSenderNotSupportedError'
- $ref: '#/components/schemas/WithdrawRtpPersonalWithdrawalNotSupportedError'
- $ref: '#/components/schemas/DepositAccountRestrictedError'
- $ref: '#/components/schemas/WireInvalidImadError'
- $ref: '#/components/schemas/WireAccountRestrictedError'
- $ref: '#/components/schemas/WireNotEnabledError'
- $ref: '#/components/schemas/WireAccountNotFoundError'
- $ref: '#/components/schemas/PrefundingSourceNotAllowedError'
'403':
description: Forbidden
headers: {}
content:
application/vnd.dwolla.v1.hal+json:
schema:
oneOf:
- $ref: '#/components/schemas/InvalidAttemptToFacilitateFundsError'
- $ref: '#/components/schemas/InvalidAttemptToPayInFundsError'
- $ref: '#/components/schemas/InvalidAttemptToPayOutFundsError'
- $ref: '#/components/schemas/RtpAccountSettingNotEnabledError'
'429':
description: Too Many Requests
headers: {}
content:
application/vnd.dwolla.v1.hal+json:
schema:
$ref: '#/components/schemas/TooManyRequestsErrorError'
/transfers/{id}:
get:
tags:
- transfers
summary: Retrieve a transfer
description: Retrieve detailed information for a specific transfer by its unique identifier belonging
to an Account or Customer. Returns transfer status, amount, creation date, clearing details, and
links to source and destination funding sources for complete transaction tracking. Includes cancellation
links when applicable and references to related funding transfers. Essential for monitoring transfer
lifecycle and transaction reconciliation.
operationId: getTransfer
x-speakeasy-name-override: get
x-codeSamples:
- lang: bash
source: 'GET https://api-sandbox.dwolla.com/transfers/15c6bcce-46f7-e811-8112-e8dd3bececa8
Accept: application/vnd.dwolla.v1.hal+json
Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY
'
- lang: javascript
source: "// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node\nvar transferUrl =\n \"\
https://api-sandbox.dwolla.com/transfers/15c6bcce-46f7-e811-8112-e8dd3bececa8\";\n\ndwolla.get(transferUrl).then((res)\
\ => res.body.status); // => 'pending'\n"
- lang: python
source: '# Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python
transfer_url = ''https://api-sandbox.dwolla.com/transfers/15c6bcce-46f7-e811-8112-e8dd3bececa8''
transfer = account_token.get(transfer_url)
transfer.body[''status''] # => ''pending''
'
- lang: php
source: '<?php
// Using dwollaswagger - https://github.com/Dwolla/dwolla-swagger-php
$transferUrl = ''https://api-sandbox.dwolla.com/transfers/15c6bcce-46f7-e811-8112-e8dd3bececa8'';
$transfersApi = new DwollaSwagger\TransfersApi($apiClient);
$transfer = $transfersApi->byId($transferUrl);
$transfer->status; # => "pending"
?>
'
- lang: ruby
source: '# Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby
transfer_url = ''https://api.dwolla.com/transfers/15c6bcce-46f7-e811-8112-e8dd3bececa8''
transfer = app_token.get transfer_url
transfer.status # => "pending"
'
parameters:
- name: id
in: path
description: ID of transfer to be retrieved
required: true
schema:
type: string
- $ref: '#/components/parameters/Accept'
responses:
'200':
description: successful operation
headers: {}
content:
application/vnd.dwolla.v1.hal+json:
schema:
$ref: '#/components/schemas/Transfer'
'404':
description: 404 Not Found
headers: {}
content:
application/vnd.dwolla.v1.hal+json:
schema:
$ref: '#/components/schemas/NotFoundError'
post:
tags:
- transfers
summary: Cancel a transfer
description: Cancel a pending transfer by setting its status to cancelled. Only transfers in pending
status can be cancelled before processing begins. Returns the updated transfer resource with cancelled
status. Use this endpoint to stop a bank transfer from further processing.
operationId: cancelTransfer
x-speakeasy-name-override: cancel
x-codeSamples:
- lang: bash
source: "POST https://api-sandbox.dwolla.com/transfers/3d48c13a-0fc6-e511-80de-0aa34a9b2388\n\
Content-Type: application/vnd.dwolla.v1.hal+json\nAccept: application/vnd.dwolla.v1.hal+json\n\
Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY\n\n{\n \"status\"\
: \"cancelled\"\n}\n"
- lang: javascript
source: "// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node\nvar transferUrl =\n \"\
https://api-sandbox.dwolla.com/transfers/3d48c13a-0fc6-e511-80de-0aa34a9b2388\";\nvar requestBody\
\ = {\n status: \"cancelled\",\n};\n\ndwolla.post(transfer_url, requestBody).then((res) =>\
\ res.body.status); // => \"cancelled\"\n"
- lang: python
source: "# Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python\ntransfer_url = 'https://api-sandbox.dwolla.com/transfers/3d48c13a-0fc6-e511-80de-0aa34a9b2388'\n\
request_body = {\n 'status': 'cancelled'\n}\n\ntransfer = app_token.post(transfer_url, request_body)\n\
transfer.body['status'] # => 'cancelled'\n"
- lang: php
source: "<?php\n// Using dwollaswagger - https://github.com/Dwolla/dwolla-swagger-php\n$transfersApi\
\ = new DwollaSwagger\\TransfersApi($apiClient);\n\n$transferUrl = 'https://api-sandbox.dwolla.com/transfers/3d48c13a-0fc6-e511-80de-0aa34a9b2388';\n\
$transfer = $transfersApi->update([\n 'status' => 'cancelled',\n], $transferUrl);\n\n$transfer->status;\
\ # => \"cancelled\"\n?>\n"
- lang: ruby
source: "# Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby\ntransfer_url = 'https://api-sandbox.dwolla.com/transfers/3d48c13a-0fc6-e511-80de-0aa34a9b2388'\n\
request_body = {\n \"status\" => \"cancelled\",\n}\n\ntransfer = app_token.post \"#{transfer_url}\"\
, request_body\ntransfer.status # => \"cancelled\"\n"
parameters:
- name: id
in: path
description: ID of transfer
required: true
schema:
type: string
- $ref: '#/components/parameters/Accept'
requestBody:
required: true
description: Parameters to cancel a transfer
content:
application/json:
schema:
required:
- status
type: object
properties:
status:
type: string
const: cancelled
responses:
'200':
description: successful operation
headers: {}
content:
application/vnd.dwolla.v1.hal+json:
schema:
type: object
'400':
description: 400 Bad Request
headers: {}
content:
application/vnd.dwolla.v1.hal+json:
schema:
oneOf:
- $ref: '#/components/schemas/BadRequestError'
- $ref: '#/components/schemas/StatusInvalidError'
- $ref: '#/components/schemas/StatusNotAllowedError'
'404':
description: 404 Not Found
headers: {}
content:
application/vnd.dwolla.v1.hal+json:
schema:
$ref: '#/components/schemas/NotFoundError'
/customers/{id}/transfers:
get:
tags:
- transfers
summary: List and search transfers for a customer
description: Retrieve and search transfers for a specific Customer with comprehensive filtering
and pagination support. Supports searching by customer details (name, email, business name), amount
ranges, date ranges, transfer status, and correlation IDs for enhanced transaction discovery.
Returns paginated transfer results including status, amounts, metadata, and links to source and
destination funding sources. Use this endpoint for transaction history analysis and reconciliation
purposes.
operationId: listCustomerTransfers
x-speakeasy-group: customers.transfers
x-speakeasy-name-override: list
x-codeSamples:
- lang: bash
source: 'GET https://api-sandbox.dwolla.com/customers/33e56307-6754-41cb-81e2-23a7f1072295/transfers
Accept: application/vnd.dwolla.v1.hal+json
Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY
'
- lang: javascript
source: "// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node\nvar customerUrl =\n \"\
http://api-sandbox.dwolla.com/customers/33e56307-6754-41cb-81e2-23a7f1072295\";\n\ndwolla\n\
\ .get(`${customerUrl}/transfers`)\n .then((res) => res.body._embedded[\"transfers\"][0].status);\
\ // => \"pending\"\n"
- lang: python
source: '# Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python
customer_url = ''http://api-sandbox.dwolla.com/customers/33e56307-6754-41cb-81e2-23a7f1072295''
transfers = app_token.get(''%s/transfers'' % customer_url)
transfers.body[''_embedded''][''transfers''][0][''status''] # => ''pending''
'
- lang: php
source: '<?php
// Using dwollaswagger - https://github.com/Dwolla/dwolla-swagger-php
$customerUrl = ''http://api-sandbox.dwolla.com/customers/33e56307-6754-41cb-81e2-23a7f1072295'';
$TransfersApi = new DwollaSwagger\TransfersApi($apiClient);
$transfers = $TransfersApi->getCustomerTransfers($customerUrl);
$transfers->_embedded->{''transfers''}[0]->status; # => "pending"
?>
'
- lang: ruby
source: '# Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby
customer_url = ''http://api-sandbox.dwolla.com/customers/33e56307-6754-41cb-81e2-23a7f1072295''
transfers = app_token.get "#{customer_url}/transfers"
transfers._embedded[''transfers''][0].status # => "pending"
'
parameters:
- name: id
in: path
description: Customer's unique identifier
required: true
schema:
type: string
- name: search
in: query
description: A string to search on fields `firstName`, `lastName`, `email`, `businessName`
required: false
schema:
type: string
- name: startAmount
in: query
description: Only include transactions with an amount equal to or greater than `startAmount`
required: false
schema:
type: string
- name: endAmount
in: query
description: Only include transactions with an amount equal to or less than `endAmount`
required: false
schema:
type: string
- name: startDate
in: query
description: Only include transactions created after this date. ISO-8601 format `YYYY-MM-DD`
required: false
schema:
type: string
- name: endDate
in: query
description: Only include transactions created before this date. ISO-8601 format `YYYY-MM-DD`
required: false
schema:
type: string
- name: status
in: query
description: Filter on transaction status. Possible values are `pending`, `processed`, `failed`,
or `cancelled`
required: false
schema:
type: string
- name: correlationId
in: query
description: A string value to search on if `correlationId` was specified for a transaction
required: false
schema:
type: string
- name: limit
in: query
description: Num
# --- truncated at 32 KB (124 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dwolla/refs/heads/main/openapi/dwolla-transfers-openapi.yml