Skip to content

Payment Gateway

Dwolla
API integration

Ship Payment Gateway features without building the integration. Full Dwolla API access via Proxy and 80+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Talk to us
Dwolla

Use Cases

Why integrate with Dwolla

Common scenarios for SaaS companies building Dwolla integrations for their customers.

01

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.

02

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.

03

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.

04

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.

05

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

Ship these features with Truto + Dwolla

Concrete product features your team can ship faster by leveraging Truto’s Dwolla integration instead of building from scratch.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

SuperAI

Dwolla AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

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.

Why Truto

Why use Truto’s MCP server for Dwolla

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 500+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with Dwolla in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Dwolla account

Use Truto’s frontend SDK to connect your customer’s Dwolla account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Dwolla

Truto’s Proxy API is a 1-to-1 mapping of the Dwolla API. You call us, we call Dwolla, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Dwolla’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Dwolla on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

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.

Dwolla

Get Dwolla integrated into your app

Our team understands what it takes to make a Dwolla integration successful. A short, crisp 30 minute call with folks who understand the problem.