---
title: Dwolla API Integration on Truto
slug: dwolla
category: Payment Gateway
canonical: "https://truto.one/integrations/detail/dwolla/"
---

# Dwolla API Integration on Truto



**Category:** Payment Gateway  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 82 tools for Dwolla that AI agents can call directly.

- **create_a_dwolla_funding_source** — Create a funding source for a Dwolla Main Account by connecting a checking or savings bank account using either manual account details or an exchange resource. Returns the newly created funding source.
- **list_all_dwolla_funding_sources** — List all funding sources associated with a specific Dwolla Main Account, including bank accounts and balance sources. Returns status, type, and available processing channel details for each source. Required: account_id.
- **get_single_dwolla_funding_source_by_id** — Get detailed information about a specific Dwolla funding source by id. Returns type, status, and verification details; debit card sources additionally include masked brand, last four digits, expiration date, and cardholder name.
- **update_a_dwolla_funding_source_by_id** — Update or remove a Dwolla funding source by id. Allows renaming at any status; routing number, account number, and account type can only be changed while unverified. Setting removed to true soft-deletes the source.
- **list_all_dwolla_account_transfers** — List and search transfers for a Dwolla Main account. Returns a list of transfer objects filterable by amount range, date range, transfer status, and correlation ID. Required: account_id. Results are capped at 10,000 transfers per query; use date range filters to retrieve historical data beyond this limit.
- **list_all_dwolla_account_mass_payments** — List mass payments created by a Dwolla account, sorted by creation date descending. Returns a paginated list of mass payment objects. Required: account_id.
- **list_all_dwolla_accounts** — Get basic account information for a Dwolla main account. Returns: account id, name, and links to related resources such as funding sources, transfers, and customers. Required: id.
- **update_a_dwolla_customer_by_id** — Update an existing Dwolla customer by id. Required: id.
- **create_a_dwolla_customer** — Create a new Dwolla customer. Supports unverified customers, personal verified customers (individuals), business verified customers (businesses), and receive-only users — each type determines transaction limits, verification requirements, and available features.
- **list_all_dwolla_customers** — List and search Dwolla customers sorted by creation date. Returns customer records from the embedded customers array. Supports fuzzy search across customer names, business names, and email addresses, plus exact filtering by email or verification status.
- **get_single_dwolla_customer_by_id** — Retrieve a single Dwolla customer by id. Returns contact details, address, and verification status for verified customers, or basic contact information for unverified customers and receive-only users. Required: id.
- **create_a_dwolla_beneficial_owner** — Create a beneficial owner for a Dwolla business verified customer. Beneficial owners are individuals who own 25% or more of company equity. Returns the newly created beneficial owner record. Requires customer_id, plus personal information, address, and SSN or passport in the request body.
- **delete_a_dwolla_beneficial_owner_by_id** — Permanently remove a Dwolla beneficial owner by id. This action is irreversible — the record cannot be retrieved after deletion — and changes the associated customer's certification status to "recertify". Returns an empty response on success.
- **get_single_dwolla_beneficial_owner_by_id** — Get detailed information about a specific Dwolla beneficial owner by id. Returns personal information, address, and verification status, which reflects the owner's identity verification progress and affects the business customer's transaction capabilities.
- **update_a_dwolla_beneficial_owner_by_id** — Update a Dwolla beneficial owner's information to retry identity verification. Only beneficial owners with an "incomplete" verification status can be updated; used to correct information that caused the initial verification to fail. Requires id.
- **list_all_dwolla_customer_beneficial_owners** — List all beneficial owners associated with a dwolla business verified customer. Returns personal information, verification status, and address details for each owner. Required: customer_id.
- **create_a_dwolla_beneficial_ownership** — Certify beneficial ownership for a Dwolla business verified customer, confirming that all owner information is accurate and enabling the customer to send funds. Returns the updated certification status. Required: customer_id and status.
- **list_all_dwolla_beneficial_ownership** — Get the beneficial ownership certification status for a Dwolla business verified customer. Returns: status, which indicates whether ownership has been certified (uncertified, certified, or recertify) and whether the customer can send funds. Required: customer_id.
- **create_a_dwolla_client_token** — Create a short-lived client token in Dwolla for configuring Drop-in UI components. Returns a token scoped to the permitted action. Required: action (granular permission) and a customer link (_links.customer).
- **list_all_dwolla_business_classifications** — List all business classifications in Dwolla, including their embedded industry classifications. Returns a directory of business and industry classification objects. No required parameters.
- **get_single_dwolla_business_classification_by_id** — Retrieve a specific Dwolla business classification by id, including its embedded industry classifications. Returns the business classification object with nested industry classification IDs needed for creating business verified customers. Required: id.
- **create_a_dwolla_beneficial_owner_document** — Upload an identity verification document for a dwolla beneficial owner via multipart form-data. Required when the beneficial owner has a 'document' status during the business verification process. Required: beneficial_owner_id, documentType, and file.
- **list_all_dwolla_beneficial_owner_documents** — List all identity verification documents submitted for a dwolla beneficial owner. Returns each document's status, type (passport, license, etc.), verification results, and failure reasons if rejected. Required: beneficial_owner_id.
- **create_a_dwolla_customer_document** — Upload an identity verification document for a Dwolla customer using multipart form-data. Returns the created document resource. Required: customer_id, documentType, and file.
- **list_all_dwolla_customer_documents** — List all identity verification documents submitted for a Dwolla customer. Returns: document type (passport, driver's license, etc.), status, verification results, and failure reasons when rejected. Required: customer_id.
- **get_single_dwolla_document_by_id** — Retrieve a Dwolla identity verification document by id. Returns detailed information including the document's status, type, and verification results. Required: id.
- **list_all_dwolla_events** — List Dwolla events representing state changes to resources in your application, sorted by creation date (newest first). Returns event topic, timestamp, resource links, and correlation ID. Events are retained for 30 days.
- **get_single_dwolla_event_by_id** — Get a specific Dwolla event by id. Returns the event topic, timestamp, resource links, and correlation ID. Required: id.
- **create_a_dwolla_exchange_session** — Create an exchange session for a dwolla customer, enabling instant bank account verification via Plaid or MX, or debit card capture via Checkout.com Push to Card. Returns the created exchange session resource. Required: customer_id.
- **get_single_dwolla_exchange_session_by_id** — Get details of a previously created dwolla exchange session by id. Returns partner-specific fields: an external redirect URL for MX, an externalProviderSessionToken for Plaid Link initialization, or externalProviderSessionData (including id, payment_session_secret, and payment_session_token) for Checkout.com. Required: id.
- **list_all_dwolla_customers_available_exchange_connections** — List available exchange connections for a Dwolla customer's bank accounts authorized through MX Connect. Returns: account name and availableConnectionToken for each connection, which can be used to create exchanges and funding sources for transfers. Required: customer_id.
- **create_a_dwolla_customer_exchange** — Create an exchange connection between a Dwolla customer and an open banking partner (Plaid, MX, Flinks, Finicity, or Checkout.com). Request body varies by partner; use bank account partners for secure account data access or Checkout.com for Push to Card debit card flows. Required: customer_id.
- **list_all_dwolla_customer_exchanges** — List all Dwolla exchanges for a specific customer. Returns each exchange's status, creation date, and links to associated funding sources and open banking partners. Required: customer_id.
- **create_a_dwolla_exchange** — Create a Dwolla exchange for an account, linking an external bank account through an open banking partner. The request body varies by partner: token-based for Plaid, MX, and Flinks Secure Exchange, or Finicity-specific fields for Finicity.
- **list_all_dwolla_exchanges** — List all Dwolla exchanges for the account. Returns a collection of exchange objects including status, creation date, and associated open banking partner information.
- **get_single_dwolla_exchange_by_id** — Get a single Dwolla exchange by id. Returns the exchange details including status, creation date, and links to the associated customer and exchange partner. Required: id.
- **list_all_dwolla_exchange_partners** — List all supported Dwolla exchange partners. Returns: id, name, status for each partner, indicating whether they are active or inactive.
- **get_single_dwolla_exchange_partner_by_id** — Get details for a specific Dwolla exchange partner by id. Returns: name, status, and creation date. Required: id.
- **create_a_dwolla_customer_funding_source** — Create a bank account or debit card funding source for a Dwolla customer. Supports manual entry with routing and account numbers, instant verification via open banking, debit card addition via Exchange, and virtual account numbers. Required: customer_id.
- **list_all_dwolla_customer_funding_sources** — List all funding sources for a Dwolla customer, including bank accounts, debit card funding sources, and Dwolla balance (verified customers only). Returns verification status, limited account details, and creation dates. Required: customer_id.
- **create_a_dwolla_customer_kba** — Initiate a KBA session for a dwolla personal Verified Customer. Returns a KBA identifier representing the session, used to retrieve authentication questions for customer verification. Required: customer_id.
- **get_single_dwolla_kba_by_id** — Retrieve KBA questions for a specific Dwolla KBA session. Returns the questions used to verify a customer's identity during the KBA process. Required: id.
- **update_a_dwolla_kba_by_id** — Update a Dwolla KBA session by id. Required: id.
- **update_a_dwolla_kba_by_id** — Submit answers to KBA (Knowledge-Based Authentication) questions for a Dwolla customer's identity verification. Returns verification status indicating whether the customer passed or failed KBA authentication. Required: id, answers (array of four question-answer pairs, each with questionId and answerId).
- **create_a_dwolla_customer_label** — Create a label for a Dwolla Verified Customer with a specified amount. Returns the location of the created label resource in the response header. Required: customer_id, amount.
- **list_all_dwolla_customer_labels** — List all labels for a Dwolla Verified Customer, sorted by creation date with the most recent first. Returns: amount and creation timestamp for each label. Required: customer_id.
- **create_a_dwolla_label_ledger_entry** — Create a new ledger entry on a Dwolla Label to track a fund adjustment. Returns the location of the created ledger entry in the response header. Required: label_id and an amount value (positive or negative). Note: entries that would result in a negative Label balance are rejected.
- **list_all_dwolla_label_ledger_entries** — List all ledger entries for a Dwolla Label, sorted by creation date (newest first). Returns: amount, currency, and creation timestamp for each entry. Required: label_id.
- **create_a_dwolla_label_reallocation** — Create a label reallocation in Dwolla to move a specified amount from a source label to a destination label belonging to the same Verified Customer, generating ledger entries for both. The reallocation only succeeds if the source label has sufficient funds. Required: from (source label), to (destination label), and amount.
- **get_single_dwolla_label_reallocation_by_id** — Retrieve a Dwolla label reallocation by id. Returns details of the reallocation record. Required: id.
- **delete_a_dwolla_label_by_id** — Delete a Dwolla label by id to stop tracking funds and remove it from your account. Returns an empty success response on success. Required: id.
- **get_single_dwolla_label_by_id** — Get details for a specific Dwolla label by id. Returns: unique identifier, current amount with currency, and creation timestamp. Required: id.
- **get_single_dwolla_ledger_entry_by_id** — Retrieve a single Dwolla label ledger entry by id. Returns the ledger entry object for the specified id.
- **create_a_dwolla_mass_payment** — Create a Dwolla mass payment containing up to 5,000 individual payment items from a Main Account or Verified Customer funding source. Returns the location of the created mass payment resource including its unique identifier. Required: _links (source funding source) and items.
- **list_all_dwolla_mass_payments** — List all mass payments for a Dwolla Verified Customer, ordered by creation date with the most recent first. Returns: status, metadata, source funding information, and item links. Required: customer_id.
- **get_single_dwolla_mass_payment_by_id** — Get a single Dwolla mass payment by id. Returns: status (pending, processing, or complete), creation date, metadata, and links to the source funding source and payment items.
- **update_a_dwolla_mass_payment_by_id** — Update the status of a deferred Dwolla mass payment by id. Set status to 'pending' to begin fund transfers or 'cancelled' to permanently cancel before processing starts. Only applicable to mass payments originally created with deferred status. Returns the updated mass payment resource. Required: id and status.
- **list_all_dwolla_mass_payment_items** — List all items within a dwolla mass payment. Returns item details including amount, destination, metadata, and error information for failed items. Each item includes a status indicator (failed, pending, success). Required: mass_payment_id. Optionally filter results by status.
- **get_single_dwolla_mass_payment_item_by_id** — Retrieve a single dwolla mass payment item by id. Returns the item's details including amount, destination, metadata, status, and any error information if the transfer failed. Required: id.
- **list_all_dwolla_root** — Retrieve the Dwolla API root entry point. Returns HAL+JSON navigation links to accessible resources including accounts, customers, events, and webhook subscriptions.
- **update_a_dwolla_transfer_by_id** — Cancel a pending dwolla transfer by id, setting its status to cancelled. Returns the updated transfer resource reflecting the cancelled status. Required: id. Only transfers currently in pending status can be cancelled before processing begins.
- **create_a_dwolla_transfer** — Initiate a dwolla transfer between funding sources for an Account or API Customer. Supports ACH, Instant Payments (RTP/FedNow), Push-to-Debit Card, and wire transfers with optional expedited clearing, facilitator fees, metadata, and correlation IDs. Returns the location of the created transfer resource. Required: _links (source and destination funding sources), amount.
- **get_single_dwolla_transfer_by_id** — Retrieve detailed information for a specific dwolla transfer by id. Returns: status, amount, created date, clearing details, and links to source and destination funding sources. Also includes cancellation links when applicable and references to related funding transfers. Required: id.
- **create_a_dwolla_on_demand_authorization** — Create a Dwolla on-demand transfer authorization that pre-authorizes variable amount ACH transfers from a customer's bank account. Returns UI text elements including authorization body text and button text for use in your bank account addition flow.
- **list_all_dwolla_customer_transfers** — List and search transfers for a specific dwolla customer. Returns transfer records including status, amounts, metadata, and links to source and destination funding sources. Supports filtering by customer details, amount ranges, date ranges, transfer status, and correlation IDs. Required: customer_id.
- **list_all_dwolla_transfer_fees** — List fees for a specific dwolla transfer by transfer_id. Returns the total number of fees and individual fee transaction details including amounts, status, and links to source and destination accounts. Required: transfer_id.
- **create_a_dwolla_webhook_subscription** — Create a Dwolla webhook subscription to receive real-time event notifications at a specified URL endpoint. Returns the location of the created subscription resource. Required: url, secret.
- **delete_a_dwolla_webhook_subscription_by_id** — Delete a Dwolla webhook subscription by id, permanently stopping all future webhook deliveries for that subscription. Returns the deleted subscription resource for confirmation.
- **list_all_dwolla_webhook_subscriptions** — List all Dwolla webhook subscriptions belonging to the application. Returns subscription details including URL endpoints, status, creation dates, and links to associated webhooks.
- **get_single_dwolla_webhook_subscription_by_id** — Get a single Dwolla webhook subscription by id. Returns subscription configuration including URL endpoint, creation date, and links to associated webhooks.
- **update_a_dwolla_webhook_subscription_by_id** — Update a Dwolla webhook subscription by id to pause or resume webhook delivery notifications. Returns the updated subscription resource including the new paused status. Required: id, paused.
- **list_all_dwolla_webhook_retries** — List all retry attempts for a specific Dwolla webhook. Returns a collection of retry objects including unique identifiers, timestamps, and links to the parent webhook. Required: webhook_id.
- **create_a_dwolla_webhook_retry** — Retry a specific Dwolla webhook to redeliver the notification to your endpoint. Creates a new retry attempt and returns the location of the newly created retry resource. Required: webhook_id.
- **get_single_dwolla_webhook_by_id** — Retrieve a specific Dwolla webhook by id. Returns webhook details including topic, account information, delivery attempts with request/response history, and links to subscription and retry resources. Required: id.
- **create_a_dwolla_micro_deposit** — Initiate micro-deposits for a Dwolla funding source, prompting Dwolla to send two small amounts to the customer's bank account for later verification. Returns a 201 Created response with a Location header pointing to the created micro-deposits resource. Required: funding_source_id.
- **list_all_dwolla_micro_deposits** — Get the micro-deposits resource for a Dwolla funding source, typically used to retrieve the current status of a previously initiated micro-deposit. Required: funding_source_id.
- **list_all_dwolla_account_funding_sources** — List all funding sources associated with a Dwolla account. Returns a collection of funding source objects. Required: account_id.
- **get_single_dwolla_funding_source_balance_by_id** — Get the balance of a Dwolla funding source by id. Returns the current balance associated with the specified funding source. Required: id.
- **get_single_dwolla_funding_source_ach_routing_by_id** — Get ACH routing details for a dwolla funding source by id. Returns the ACH routing information associated with the specified funding source. Required: id.
- **create_a_dwolla_exchange_reauthentication_session** — Create a reauthentication session for a Dwolla exchange, initiating the process to re-verify an existing exchange's credentials. Required: exchange_id.
- **list_all_dwolla_transfer_failures** — Get the failure details for a Dwolla transfer by transfer_id. Returns the failure reason and related information associated with the failed transfer. Required: transfer_id.
- **list_all_dwolla_subscription_webhooks** — List webhooks fired for a specific Dwolla webhook subscription. Returns an array of webhook objects from the subscription's event history. Required: webhook_subscription_id.

## How it works

1. **Link your customer's Dwolla account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Dwolla.** The Proxy API is a 1-to-1 mapping of the Dwolla API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed ACH and RTP payments in your AP automation product** — Let your customers pay vendors directly from your platform via ACH, Same-Day ACH, or RTP. Use Dwolla mass payments to disburse to thousands of vendors in a single API call and reconcile statuses through webhooks.
- **Offer white-labeled rent collection and contractor payouts in PropTech** — Onboard landlords, tenants, and contractors as Dwolla customers without leaving your app, then automate recurring rent pulls and maintenance payouts. Use label ledger entries to escrow portions of collected rent for future expenses.
- **Power instant payouts for marketplaces and gig platforms** — Verify worker bank accounts via Dwolla Exchanges and trigger Push-to-Debit or RTP transfers the moment a job completes. End users get paid in seconds without you handling card or bank credentials directly.
- **Automate KYC/KYB onboarding for fintech and B2B platforms** — Collect identity data, beneficial owner info, and verification documents through your own UI and pass them to Dwolla programmatically. Listen for verification webhooks to drive users through retry flows when documents fail.
- **Build a programmatic sub-wallet system on top of Dwolla Labels** — Use Dwolla customer labels and label reallocations to model platform fees, escrow balances, and reserve accounts under a single funding source. Ideal for marketplaces splitting funds across buyers, sellers, and the platform itself.

## What you can build

- **Embedded customer onboarding with KYC, KYB, and beneficial owners** — Create Dwolla customers, add beneficial owners, certify beneficial ownership, and upload verification documents from inside your product.
- **Bank account linking via micro-deposits or Open Banking exchanges** — Let users connect funding sources either by initiating and verifying micro-deposits or by creating an exchange session with a partner like Plaid or MX.
- **One-click mass payouts with item-level reconciliation** — Submit up to 5,000 payment items per mass payment and surface per-item status using the mass payment items endpoints to drive payout dashboards.
- **Programmable wallet and ledger using Dwolla Labels** — Create labels, post label ledger entries, and execute label reallocations to model escrow, fees, and sub-balances under a customer's funding source.
- **Real-time transfer state syncing via webhooks** — Subscribe to Dwolla webhook events for customers, transfers, documents, and funding sources so your app reflects clearing, failures, and verification updates as they happen.
- **Transfer lifecycle management with fees and failure reporting** — Initiate transfers, cancel pending ones, look up associated fees, and pull transfer failure details to power retry flows and reconciliation reports.

## FAQs

### How does authentication work for Dwolla through Truto?

Dwolla uses OAuth-style client credentials to mint access tokens against either the sandbox or production environment. Truto manages token acquisition, refresh, and environment routing so your end users only connect their Dwolla account once.

### Which Dwolla resources can I read and write through this integration?

You can manage customers, beneficial owners, beneficial ownership certifications, KBA sessions, documents, funding sources, micro-deposits, exchanges and exchange sessions, transfers, mass payments and items, labels and label ledger entries, reallocations, events, and webhook subscriptions.

### How do I keep transfer and verification status in sync?

Dwolla is asynchronous. Use the webhook subscription endpoints to register an endpoint and consume events for transfers, customer verification, documents, and funding sources. You can also list events or replay them using the webhook retries endpoint.

### Can I run mass payouts for many recipients at once?

Yes. A single create mass payment call accepts up to 5,000 items sourced from one funding source. You can then list mass payment items or fetch a single item to reconcile per-recipient success and failure states.

### Does the integration support Open Banking bank linking instead of micro-deposits?

Yes. You can create an exchange session, attach an exchange to a customer, and create a customer funding source from that exchange. Re-authentication sessions are also supported when a connection expires.

### How are sandbox and production environments handled?

Dwolla operates separate sandbox and production environments with isolated credentials and data. Each Truto connection is scoped to one environment, so you can safely build and test against sandbox before promoting to production.

## Related reading

- [Connect Dwolla to ChatGPT: Manage ACH Transfers & Customer KYC](https://truto.one/blog/connect-dwolla-to-chatgpt-manage-ach-transfers-customer-kyc/) — Learn how to connect Dwolla to ChatGPT using a managed MCP server. Automate ACH transfers, mass payments, and KYC compliance workflows without building custom infrastructure.
- [Connect Dwolla to Claude: Automate Mass Payments & Funding Sources](https://truto.one/blog/connect-dwolla-to-claude-automate-mass-payments-funding-sources/) — Learn how to connect Dwolla to Claude using a managed MCP server. Automate mass payments, customer KYC verification, and funding source management with AI.
