Dwolla Accounts API

Retrieve details about your master Dwolla Account and manage account-level resources including creating and listing the account's own funding sources, and listing the account's transfers and mass payments. The root of the account-to-account money-movement model that all verified Customers and funding sources hang from.

OpenAPI Specification

dwolla-accounts-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Dwolla API - Accounts
  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: accounts
  description: Operations related to Accounts
paths:
  /accounts/{id}:
    get:
      tags:
      - accounts
      summary: Retrieve account details
      description: Returns basic account information for your authorized Main Dwolla Account, including
        account ID, name, and links to related resources such as funding sources, transfers, and customers.
      operationId: getAccount
      x-speakeasy-name-override: get
      x-codeSamples:
      - lang: bash
        source: 'GET https://api-sandbox.dwolla.com/accounts/ca32853c-48fa-40be-ae75-77b37504581b

          Accept: application/vnd.dwolla.v1.hal+json

          Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY

          '
      - lang: javascript
        source: '// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node

          var accountUrl = "https://api-sandbox.dwolla.com/accounts/ca32853c-48fa-40be-ae75-77b37504581b";


          dwolla.get(accountUrl).then((res) => res.body.name); // => ''Jane Doe''

          '
      - lang: python
        source: '# Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python

          account_url = ''https://api-sandbox.dwolla.com/accounts/ca32853c-48fa-40be-ae75-77b37504581b''


          account = app_token.get(account_url)

          account.body[''name'']

          '
      - lang: php
        source: '<?php

          // Using dwollaswagger - https://github.com/Dwolla/dwolla-swagger-php

          $accountUrl = ''https://api-sandbox.dwolla.com/accounts/ca32853c-48fa-40be-ae75-77b37504581b'';


          $accountsApi = new DwollaSwagger\AccountsApi($apiClient);


          $account = $accountsApi->id($accountUrl);

          print($account->name); # => "Jane Doe"

          ?>

          '
      - lang: ruby
        source: '# Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby

          account_url = ''https://api-sandbox.dwolla.com/accounts/ca32853c-48fa-40be-ae75-77b37504581b''


          account = app_token.get account_url

          account.name # => "Jane Doe"

          '
      parameters:
      - name: id
        in: path
        description: Account's unique identifier
        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/Account'
        '403':
          description: forbidden
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: forbidden
                  message:
                    type: string
                    example: Not authorized to retrieve an Account by id.
        '404':
          description: not found
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
  /funding-sources:
    post:
      tags:
      - accounts
      summary: Create a funding source for an account
      description: 'Create a funding source by adding a bank account to a Main Dwolla Account. This endpoint
        allows you to connect a checking or savings account using either manual bank account details or
        an exchange resource.


        For more information about funding sources, see the [Funding Sources API Reference](https://developers.dwolla.com/docs/api-reference/funding-sources).

        '
      operationId: createFundingSource
      x-speakeasy-group: accounts.fundingSources
      x-speakeasy-name-override: create
      x-codeSamples:
      - lang: bash
        source: "POST https://api-sandbox.dwolla.com/funding-sources\nContent-Type: application/vnd.dwolla.v1.hal+json\n\
          Accept: application/vnd.dwolla.v1.hal+json\nAuthorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY\n\
          {\n    \"routingNumber\": \"222222226\",\n    \"accountNumber\": \"123456789\",\n    \"bankAccountType\"\
          : \"checking\",\n    \"name\": \"My Bank\"\n}\n"
      - lang: javascript
        source: "// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node\nvar requestBody = {\n\
          \  routingNumber: \"222222226\",\n  accountNumber: \"123456789\",\n  bankAccountType: \"checking\"\
          ,\n  name: \"My Bank\",\n};\n\ndwolla\n  .post(\"funding-sources\", requestBody)\n  .then((res)\
          \ => res.headers.get(\"location\")); // => 'https://api-sandbox.dwolla.com/funding-sources/04173e17-6398-4d36-a167-9d98c4b1f1c3'\n"
      - lang: python
        source: "# Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python\nrequest_body = {\n  'routingNumber':\
          \ '222222226',\n  'accountNumber': '123456789',\n  'bankAccountType': 'checking',\n  'name':\
          \ 'My Bank'\n}\n\nfunding_source = app_token.post('funding-sources', request_body)\nfunding_source.headers['location']\
          \ # => 'https://api-sandbox.dwolla.com/funding-sources/04173e17-6398-4d36-a167-9d98c4b1f1c3'\n"
      - lang: php
        source: "<?php\n// Using dwollaswagger - https://github.com/Dwolla/dwolla-swagger-php\n$fundingApi\
          \ = new DwollaSwagger\\FundingsourcesApi($apiClient);\n\n$fundingSource = $fundingApi->createFundingSource([\n\
          \  \"routingNumber\" => \"222222226\",\n  \"accountNumber\" => \"123456789\",\n  \"bankAccountType\"\
          \ => \"checking\",\n  \"name\" => \"My Bank\"\n]);\n$fundingSource; # => \"https://api-sandbox.dwolla.com/funding-sources/04173e17-6398-4d36-a167-9d98c4b1f1c3\"\
          \n?>\n"
      - lang: ruby
        source: "# Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby\nrequest_body = {\n  routingNumber:\
          \ '222222226',\n  accountNumber: '123456789',\n  bankAccountType: 'checking',\n  name: 'My Bank'\n\
          }\n\nfunding_source = app_token.post \"funding-sources\", request_body\nfunding_source.response_headers[:location]\
          \ # => \"https://api-sandbox.dwolla.com/funding-sources/04173e17-6398-4d36-a167-9d98c4b1f1c3\"\
          \n"
      parameters:
      - $ref: '#/components/parameters/Accept'
      requestBody:
        required: true
        description: Parameters for the funding source to be created
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAccountFundingSource'
      responses:
        '201':
          description: successful operation
          headers:
            Location:
              $ref: '#/components/headers/Location'
        '400':
          description: Bad request or duplicate resource
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/BadRequestSchema'
                - $ref: '#/components/schemas/DuplicateResourceSchema'
        '403':
          description: forbidden
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: forbidden
                  message:
                    type: string
                    example: Not authorized to create funding source.
  /accounts/{id}/funding-sources:
    get:
      tags:
      - accounts
      summary: List funding sources for an account
      description: 'Get a list of all funding sources associated with a specific Main Dwolla Account.
        This endpoint returns both bank accounts and balance funding sources, with detailed information
        about each funding source''s status, type, and available processing channels.

        '
      operationId: listFundingSources
      x-speakeasy-group: accounts.fundingSources
      x-speakeasy-name-override: list
      x-codeSamples:
      - lang: bash
        source: 'GET https://api-sandbox.dwolla.com/accounts/CA366CA3-6D30-44D6-B0F3-8D86C64462A1/funding-sources

          Accept: application/vnd.dwolla.v1.hal+json

          Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY

          '
      - lang: javascript
        source: "// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node\ndwolla\n  .get(\"accounts/CA366CA3-6D30-44D6-B0F3-8D86C64462A1/funding-sources\"\
          )\n  .then((res) => res.body.total); // => 1\n"
      - lang: python
        source: '# Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python

          funding_sources = app_token.get(''accounts/CA366CA3-6D30-44D6-B0F3-8D86C64462A1/funding-sources'')

          funding_sources.body[''total''] # => 1

          '
      - lang: php
        source: '<?php

          // Using dwollaswagger - https://github.com/Dwolla/dwolla-swagger-php

          $fundingApi = new DwollaSwagger\FundingsourcesApi($apiClient);


          $fundingSources = $fundingApi->getAccountFundingSources("CA366CA3-6D30-44D6-B0F3-8D86C64462A1");

          $fundingSources->total; # => 1

          ?>

          '
      - lang: ruby
        source: '# Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby

          funding_sources = app_token.get "accounts/CA366CA3-6D30-44D6-B0F3-8D86C64462A1/funding-sources"

          funding_sources.total # => 1

          '
      parameters:
      - name: id
        in: path
        description: Account's unique identifier
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/Accept'
      - name: removed
        in: query
        description: Filter removed funding sources. Boolean value. Defaults to `true`
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                $ref: '#/components/schemas/FundingSources'
        '403':
          description: forbidden
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: forbidden
                  message:
                    type: string
                    example: Not authorized to list funding sources.
        '404':
          description: not found
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: notFound
                  message:
                    type: string
                    example: Account not found.
  /accounts/{id}/transfers:
    get:
      tags:
      - accounts
      summary: List and search account transfers
      description: Returns a paginated, searchable list of transfers associated with the specified Main
        Dwolla account. Supports advanced filtering by amount range, date range, transfer status, and
        correlation ID. Results are limited to 10,000 transfers per query; use date range filters for
        historical data beyond this limit.
      operationId: listAndSearchTransfers
      x-speakeasy-group: accounts.transfers
      x-speakeasy-name-override: list
      x-codeSamples:
      - lang: bash
        source: 'GET https://api-sandbox.dwolla.com/accounts/CA366CA3-6D30-44D6-B0F3-8D86C64462A1/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\ndwolla\n  .get(\"accounts/CA366CA3-6D30-44D6-B0F3-8D86C64462A1/transfers\"\
          )\n  .then((res) => res.body.total); // => 1\n"
      - lang: python
        source: '# Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python

          transfers = app_token.get(''accounts/CA366CA3-6D30-44D6-B0F3-8D86C64462A1/transfers'')

          transfers.body[''total''] # => 1

          '
      - lang: php
        source: '<?php

          // Using dwollaswagger - https://github.com/Dwolla/dwolla-swagger-php

          $transfersApi = new DwollaSwagger\TransfersApi($apiClient);


          $transfers = $transfersApi->getAccountTransfers("CA366CA3-6D30-44D6-B0F3-8D86C64462A1");

          $transfers->total; # => 1

          ?>

          '
      - lang: ruby
        source: '# Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby

          transfers = app_token.get "accounts/CA366CA3-6D30-44D6-B0F3-8D86C64462A1/transfers"

          transfers.total # => 1

          '
      parameters:
      - name: id
        in: path
        description: Account's unique identifier
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/Accept'
      - name: search
        in: query
        description: A string to search on fields `firstName`, `lastName`, `email`, `businessName`, Customer
          ID, and Account ID
        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: Number of search results to return. Defaults to 25
        required: false
        schema:
          type: string
      - name: offset
        in: query
        description: Number of search results to skip. Use for pagination
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                $ref: '#/components/schemas/Transfers'
        '404':
          description: not found
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: notFound
                  message:
                    type: string
                    example: Account not found.
  /accounts/{id}/mass-payments:
    get:
      tags:
      - accounts
      summary: List account mass payments
      description: Returns a paginated list of mass payments created by your Main Dwolla account. Results
        are sorted by creation date in descending order (newest first) and can be filtered by correlation
        ID.
      operationId: listMassPayments
      x-speakeasy-group: accounts.massPayments
      x-speakeasy-name-override: list
      x-codeSamples:
      - lang: bash
        source: 'GET https://api-sandbox.dwolla.com/accounts/CA366CA3-6D30-44D6-B0F3-8D86C64462A1/mass-payments

          Accept: application/vnd.dwolla.v1.hal+json

          Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY

          '
      - lang: javascript
        source: "// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node\ndwolla\n  .get(\"accounts/CA366CA3-6D30-44D6-B0F3-8D86C64462A1/mass-payments\"\
          )\n  .then((res) => res.body.total); // => 1\n"
      - lang: python
        source: '# Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python

          mass_payments = app_token.get(''accounts/CA366CA3-6D30-44D6-B0F3-8D86C64462A1/mass-payments'')

          mass_payments.body[''total''] # => 1

          '
      - lang: php
        source: '<?php

          // Using dwollaswagger - https://github.com/Dwolla/dwolla-swagger-php

          $massPaymentsApi = new DwollaSwagger\MasspaymentsApi($apiClient);


          $massPayments = $massPaymentsApi->getAccountMassPayments("CA366CA3-6D30-44D6-B0F3-8D86C64462A1");

          $massPayments->total; # => 1

          ?>

          '
      - lang: ruby
        source: '# Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby

          mass_payments = app_token.get "accounts/CA366CA3-6D30-44D6-B0F3-8D86C64462A1/mass-payments"

          mass_payments.total # => 1

          '
      parameters:
      - name: id
        in: path
        description: Account's unique identifier
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - $ref: '#/components/parameters/Accept'
      - name: limit
        in: query
        description: Maximum number of results to return
        required: false
        schema:
          type: integer
          format: int32
          minimum: 1
          maximum: 200
          default: 25
          example: 25
      - name: offset
        in: query
        description: How many results to skip.
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
          example: 0
      - name: correlationId
        in: query
        description: Correlation ID to search by.
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                $ref: '#/components/schemas/MassPayments'
        '403':
          description: forbidden
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: forbidden
                  message:
                    type: string
                    example: Not authorized to list mass payments.
        '404':
          description: not found
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: notFound
                  message:
                    type: string
                    example: Account not found.
components:
  schemas:
    Transfers:
      title: Transfers
      type: object
      properties:
        _links:
          additionalProperties:
            $ref: '#/components/schemas/HalLink'
        _embedded:
          type: object
          properties:
            transfers:
              type: array
              items:
                $ref: '#/components/schemas/Transfer'
        total:
          type: integer
          example: 100
    TransferAmount:
      title: TransferAmount
      type: object
      required:
      - value
      - currency
      properties:
        value:
          type: string
          example: '5.00'
        currency:
          type: string
          example: USD
    MassPayments:
      title: MassPayments
      type: object
      properties:
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/HalLink'
        _embedded:
          type: object
          properties:
            mass-payments:
              type: array
              items:
                $ref: '#/components/schemas/MassPayment'
        total:
          type: integer
          example: 100
    NotFoundError:
      title: NotFoundError
      description: Error response schema for 404 NotFound
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
          example: NotFound
        message:
          type: string
          example: The requested resource was not found.
    Account:
      title: Account
      type: object
      properties:
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/HalLink'
        id:
          type: string
          example: 2e21f010-3023-4891-aced-ed726d7cd5e1
        name:
          type: string
          example: Jane Doe's Business
        timezoneOffset:
          type: number
          example: -6
        type:
          type: string
          example: Commercial
    FundingSources:
      title: FundingSources
      type: object
      properties:
        _links:
          additionalProperties:
            $ref: '#/components/schemas/HalLink'
        _embedded:
          type: object
          properties:
            funding-sources:
              type: array
              items:
                $ref: '#/components/schemas/FundingSource'
        total:
          type: integer
          format: int32
          example: 3
    DuplicateResourceSchema:
      title: DuplicateResourceSchema
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
          example: DuplicateResource
        message:
          type: string
          example: 'Bank already exists: id=df8392e5-4c06-42ed-b247-c098ed6f5a11'
        _links:
          type: object
          properties:
            about:
              type: object
              properties:
                href:
                  type: string
                  example: https://api.dwolla.com/funding-sources/df8392e5-4c06-42ed-b247-c098ed6f5a11
                type:
                  type: string
                  example: application/vnd.dwolla.v1.hal+json
                resource-type:
                  type: string
                  example: funding-source
    HalLink:
      title: HalLink
      type: object
      properties:
        href:
          type: string
          example: https://api.dwolla.com
        type:
          type: string
          example: application/vnd.dwolla.v1.hal+json
        resource-type:
          type: string
          example: resource-type
    BadRequestSchema:
      title: BadRequestSchema
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
          example: ValidationError
        message:
          type: string
          example: Validation error(s) present. See embedded errors list for more details.
        _embedded:
          type: object
          properties:
            code:
              type: string
              example: ValidationError
            message:
              type: string
              example: Validation error(s) present. See embedded errors list for more details.
    MassPayment:
      title: MassPayment
      type: object
      properties:
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/HalLink'
        id:
          type: string
          example: 11ac4051-7b76-44fc-87ab-ae23012393f0
        status:
          type: string
          example: complete
        created:
          type: string
          format: date-time
          example: '2022-01-20T17:41:41.000Z'
        metaData:
          type: object
        total:
          $ref: '#/components/schemas/TransferAmount'
        totalFees:
          $ref: '#/components/schemas/TransferAmount'
        correlationId:
          type: string
          example: CID-8a2cdc8d-629d-4a24-98ac-40b735229fe2
    FundingSource:
      title: FundingSource
      type: object
      properties:
        _links:
          additionalProperties:
            $ref: '#/components/schemas/HalLink'
        id:
          type: string
          example: d3d6b41e-5567-4bc6-9c6e-0efd0a3e647e
        status:
          type: string
          example: unverified
        type:
          type: string
          example: bank
        bankAccountType:
          type: string
          example: checking
        name:
          type: string
          example: My bank
        created:
          type: string
          format: date-time
          example: '2022-07-23T00:18:21.419Z'
        removed:
          type: boolean
          example: true
        channels:
          type: array
          description: Payment processing channels supported by this funding source
          items:
            type: string
            enum:
            - ach
            - real-time-payments
            - wire
            - external
            example: ach
        bankName:
          type: string
          example: SANDBOX TEST BANK
        fingerprint:
          type: string
          example: 5012989b55af15400e8102f95d2ec5e7ce3aef45c01613280d80a236dd8d6c
        bankUsageType:
          type: string
          description: The usage type of the bank account. Indicates if this is a settlement account for
            card network processors.
          enum:
          - card-network
          example: card-network
        cardDetails:
          type: object
          description: Card-specific details. Only present when type is 'card'.
          properties:
            brand:
              type: string
              description: The card brand/network (e.g., Visa, Mastercard, American Express)
              example: Visa
            lastFour:
              type: string
              description: The last four digits of the card number
              example: '1234'
            expirationMonth:
              type: integer
              description: The card expiration month (1-12)
              example: 12
              minimum: 1
              maximum: 12
            expirationYear:
              type: integer
              description: The card expiration year (4-digit year)
              example: 2026
            nameOnCard:
              type: string
              description: The cardholder name as it appears on the card
              example: John Doe
            bin:
              type: string
              description: Bank Identification Number (BIN) - the first 6-8 digits of the card number
              example: '40247644'
            billingAddress:
              type: object
              description: The billing address associated with the card
              properties:
                address1:
                  type: string
                  description: First line of the street address
                  example: 552 test
                address2:
                  type: string
                  description: Second line of the street address (optional)
                  example: Apt 4B
                address3:
                  type: string
                  description: Third line of the street address (optional)
                  example: Unit 101
                city:
                  type: string
                  description: City name
                  example: Des Moines
                stateProvinceRegion:
                  type: string
                  description: Two-letter state, province, or region code
                  example: IA
                country:
                  type: string
                  description: Two-letter country code (ISO 3166-1 alpha-2)
                  example: US
                postalCode:
                  type: string
                  description: Postal code or ZIP code
                  example: '50310'
    Transfer:
      title: Transfer
      type: object
      properties:
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/HalLink'
        id:
          type: string
          example: 15c6bcce-46f7-e811-8112-e8dd3bececa8
        status:
          type: string
          example: pending
        amount:
          type: object
          properties:
            value:
              type: string
              example: '42.00'
            currency:
              type: string
              example: USD
        created:
          type: string
          format: date-time
          example: '2018-12-03T22:00:22.970Z'
        clearing:
          type: object
          properties:
            source:
              type: string
              example: standard
            destination:
              type: string
              example: same-day
        metadata:
          type: object
          properties:
            paymentId:
              type: string
              example: '12345678'
            note:
              type: string
              example: Payment for completed work Dec. 1
        achDetails:
          type: object
          description: ACH-specific details for the transfer. Present when transfer was processed via
            ACH network.
          properties:
            source:
              type: object
              description: Information sent to the source/originating bank account along with the transfer
              properties:
                addenda:
                  type: object
                  description: Contains addenda information for the transfer
                  properties:
                    values:
                      type: array
                      items:
                        type: string
                        example: ABC123_AddendaValue
                      description: An array containing a single string addenda value
                beneficiaryName:
                  type: string
                  description: Beneficiary of the transaction's name. In general, should match the user
                    onboarded to the Platform's name
                  example: John Doe
                companyEntryDescription:
                  type: string
                  description: Describes the purpose of the transaction
                  example: PAYMENT
                  enum:
                  - REVERSAL
                  - RECLAIM
                  - NO CHECK
                  - AUTOENROLL
                  - REDEPCHECK
                  - RETURN FEE
                  - RETRY PMNT
                  - HEALTHCARE
                  - PAYMENT
                companyId:
                  type: string
                  description: Numeric identifier of originator
                  example: '1234567890'
                companyName:
                  type: string
                  description: Name of the originator
                  example: Acme Corporation
                effectiveDate:
                  type: string
                  format: date
                  description: The date when the ACH transaction becomes effective, formatted as YYYY-MM-DD.
                    This is typically the settlement date for the transaction
                  example: '2021-12-01'
                postingData:
                  type: string
                  description: Suggested memo line format for bank statements, structured as companyName:companyD

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dwolla/refs/heads/main/openapi/dwolla-accounts-openapi.yml