> ## Documentation Index
> Fetch the complete documentation index at: https://developers.dwolla.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Guides and Concepts

> Start with foundational concepts, move into quickstarts and use cases, and keep API reference and SDKs close at hand when you need them.

<div style={{ paddingTop: '2rem', paddingBottom: '2rem' }}>
  <div style={{ maxWidth: '40rem' }}>
    <h1 className="dw-text-heading" style={{ fontSize: 'clamp(1.75rem, 3.5vw, 2.25rem)', letterSpacing: '-0.025em', lineHeight: 1.1, fontWeight: 800, color: '#020617' }}>
      {'Everything you need to understand, '}

      <span style={{ color: '#ca4c24' }}>build, and launch</span>

      {' with Dwolla.'}
    </h1>

    <p className="dw-text-body" style={{ marginTop: '0.75rem', fontSize: '0.875rem', lineHeight: 1.7, color: '#475569' }}>
      Start with foundational concepts, move into quickstarts and use cases, and keep API reference and SDKs close at hand when you need them.
    </p>
  </div>

  {/* Search Bar — clicking opens the Kapa modal (see snippets/kapa-widget.js for the delegation) */}

  <div style={{ marginTop: '1.5rem', maxWidth: '40rem' }}>
    <div id="search-bar-entry-hero" role="button" tabIndex={0} style={{ borderRadius: '0.75rem', border: '1px solid #e2e8f0', background: 'rgba(255,255,255,0.9)', padding: '0.75rem 1rem', display: 'flex', alignItems: 'center', gap: '0.75rem', cursor: 'pointer' }}>
      <Icon icon="magnifying-glass" size={16} color="#94a3b8" />

      <span style={{ flex: 1, color: '#94a3b8', fontSize: '0.875rem' }}>Search docs or ask a question...</span>
      <kbd style={{ borderRadius: '0.25rem', border: '1px solid #e2e8f0', padding: '0.125rem 0.375rem', fontSize: '0.625rem', fontFamily: 'monospace', color: '#94a3b8' }}>⌘K</kbd>
    </div>

    <div style={{ marginTop: '0.75rem', display: 'flex', flexWrap: 'wrap', gap: '0.5rem' }}>
      <a href="/docs/quickstart" className="dw-quick-link">Quickstart</a>
      <a href="/docs/working-with-webhooks" className="dw-quick-link">Webhooks</a>
      <a href="/docs/bank-funding-source" className="dw-quick-link">Funding sources</a>
    </div>
  </div>
</div>

<div style={{ paddingBottom: '3rem' }}>
  <div className="grid md:grid-cols-2 xl:grid-cols-4 gap-4">
    <a href="/docs/what-is-dwolla" className="dw-card dw-border-guide" style={{ padding: '1.25rem', textDecoration: 'none', display: 'block' }}>
      <div style={{ fontSize: '0.6875rem', textTransform: 'uppercase', fontWeight: 600, color: '#94a3b8' }}>Start</div>
      <h3 className="dw-text-heading" style={{ marginTop: '0.5rem', fontWeight: 600, color: '#0f172a', fontSize: '0.9375rem' }}>What is Dwolla</h3>
      <p className="dw-text-body" style={{ marginTop: '0.5rem', fontSize: '0.75rem', lineHeight: 1.6, color: '#64748b' }}>Platform overview, core components, and how Dwolla fits into your payment architecture.</p>
    </a>

    <a href="/docs/customer-types" className="dw-card dw-border-concept" style={{ padding: '1.25rem', textDecoration: 'none', display: 'block' }}>
      <div style={{ fontSize: '0.6875rem', textTransform: 'uppercase', fontWeight: 600, color: '#94a3b8' }}>Concept</div>
      <h3 className="dw-text-heading" style={{ marginTop: '0.5rem', fontWeight: 600, color: '#0f172a', fontSize: '0.9375rem' }}>Customer Types</h3>
      <p className="dw-text-body" style={{ marginTop: '0.5rem', fontSize: '0.75rem', lineHeight: 1.6, color: '#64748b' }}>Unverified, verified, and receive-only customer models. Choose before you design onboarding.</p>
    </a>

    <a href="/docs/quickstart" className="dw-card dw-border-guide" style={{ padding: '1.25rem', textDecoration: 'none', display: 'block' }}>
      <div style={{ fontSize: '0.6875rem', textTransform: 'uppercase', fontWeight: 600, color: '#94a3b8' }}>Guide</div>
      <h3 className="dw-text-heading" style={{ marginTop: '0.5rem', fontWeight: 600, color: '#0f172a', fontSize: '0.9375rem' }}>Quickstart</h3>
      <p className="dw-text-body" style={{ marginTop: '0.5rem', fontSize: '0.75rem', lineHeight: 1.6, color: '#64748b' }}>Authenticate and make your first API call in under 5 minutes.</p>
    </a>

    <a href="/docs/testing" className="dw-card dw-border-template" style={{ padding: '1.25rem', textDecoration: 'none', display: 'block' }}>
      <div style={{ fontSize: '0.6875rem', textTransform: 'uppercase', fontWeight: 600, color: '#94a3b8' }}>Testing</div>
      <h3 className="dw-text-heading" style={{ marginTop: '0.5rem', fontWeight: 600, color: '#0f172a', fontSize: '0.9375rem' }}>Sandbox Testing</h3>
      <p className="dw-text-body" style={{ marginTop: '0.5rem', fontSize: '0.75rem', lineHeight: 1.6, color: '#64748b' }}>Simulate transfers, trigger events, and test failure scenarios before going live.</p>
    </a>
  </div>
</div>

<div style={{ paddingBottom: '3rem' }}>
  <div style={{ display: 'flex', alignItems: 'center', gap: '1rem', marginBottom: '2rem' }}>
    <h2 className="dw-text-heading" style={{ fontSize: '1.5rem', fontWeight: 700, color: '#0f172a', whiteSpace: 'nowrap' }}>Full content index</h2>

    <div className="dw-divider" />

    <span className="dw-text-muted" style={{ fontSize: '0.75rem', color: '#94a3b8', fontWeight: 500, whiteSpace: 'nowrap' }}>29 pages across 7 groups</span>
  </div>

  <div className="grid md:grid-cols-2 lg:grid-cols-3 gap-5">
    {/* Getting Started */}

    <div className="dw-index-card dw-border-top-emerald">
      <div style={{ padding: '1.25rem' }}>
        <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '1rem' }}>
          <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
            <span className="dw-dot dw-dot-emerald" />

            <h3 className="dw-text-heading" style={{ fontWeight: 600, color: '#0f172a' }}>Getting Started</h3>
          </div>

          <span className="dw-badge-ga" style={{ background: 'rgba(16,185,129,0.06)', color: '#047857' }}>4 pages</span>
        </div>

        <div style={{ display: 'flex', flexDirection: 'column', gap: '0.125rem' }}>
          <a href="/docs/what-is-dwolla" className="dw-page-link"><span>What is Dwolla</span><span className="dw-arrow">→</span></a>
          <a href="/docs/customer-types" className="dw-page-link"><span>Customer Types</span><span className="dw-arrow">→</span></a>
          <a href="/docs/quickstart" className="dw-page-link"><span>Quickstart</span><span className="dw-arrow">→</span></a>
          <a href="/docs/testing" className="dw-page-link"><span>Testing</span><span className="dw-arrow">→</span></a>
        </div>
      </div>
    </div>

    {/* Quickstarts */}

    <div className="dw-index-card dw-border-top-orange">
      <div style={{ padding: '1.25rem' }}>
        <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '1rem' }}>
          <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
            <span className="dw-dot dw-dot-orange" />

            <h3 className="dw-text-heading" style={{ fontWeight: 600, color: '#0f172a' }}>Funds Flows</h3>
          </div>

          <span style={{ fontSize: '0.6875rem', fontWeight: 500, padding: '0.125rem 0.5rem', borderRadius: '9999px', background: 'rgba(202,76,36,0.06)', color: '#ca4c24' }}>4 pages</span>
        </div>

        <div style={{ display: 'flex', flexDirection: 'column', gap: '0.125rem' }}>
          <a href="/docs/send-money" className="dw-page-link"><span>Send Money</span><span className="dw-arrow">→</span></a>
          <a href="/docs/receive-money" className="dw-page-link"><span>Receive Money</span><span className="dw-arrow">→</span></a>
          <a href="/docs/transfer-money-between-users" className="dw-page-link"><span>Transfer Between Users</span><span className="dw-arrow">→</span></a>
          <a href="/docs/transfer-money-me-to-me" className="dw-page-link"><span>Me-to-Me Transfer</span><span className="dw-arrow">→</span></a>
        </div>
      </div>
    </div>

    {/* Customers */}

    <div className="dw-index-card dw-border-top-sky">
      <div style={{ padding: '1.25rem' }}>
        <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '1rem' }}>
          <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
            <span className="dw-dot dw-dot-sky" />

            <h3 className="dw-text-heading" style={{ fontWeight: 600, color: '#0f172a' }}>Customers</h3>
          </div>

          <span style={{ fontSize: '0.6875rem', fontWeight: 500, padding: '0.125rem 0.5rem', borderRadius: '9999px', background: 'rgba(14,165,233,0.06)', color: '#0284c7' }}>2 pages</span>
        </div>

        <div style={{ display: 'flex', flexDirection: 'column', gap: '0.125rem' }}>
          <a href="/docs/business-verified-customer" className="dw-page-link"><span>Business Verified Customer</span><span className="dw-arrow">→</span></a>
          <a href="/docs/personal-verified-customer" className="dw-page-link"><span>Personal Verified Customer</span><span className="dw-arrow">→</span></a>
        </div>
      </div>
    </div>

    {/* Funding Sources */}

    <div className="dw-index-card dw-border-top-amber">
      <div style={{ padding: '1.25rem' }}>
        <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '1rem' }}>
          <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
            <span className="dw-dot dw-dot-amber" />

            <h3 className="dw-text-heading" style={{ fontWeight: 600, color: '#0f172a' }}>Funding Sources</h3>
          </div>

          <span style={{ fontSize: '0.6875rem', fontWeight: 500, padding: '0.125rem 0.5rem', borderRadius: '9999px', background: 'rgba(245,158,11,0.06)', color: '#d97706' }}>4 pages</span>
        </div>

        <div style={{ display: 'flex', flexDirection: 'column', gap: '0.125rem' }}>
          <a href="/docs/balance-funding-source" className="dw-page-link"><span>Balance Funding Source</span><span className="dw-arrow">→</span></a>
          <a href="/docs/bank-funding-source" className="dw-page-link"><span>Bank Funding Source</span><span className="dw-arrow">→</span></a>
          <a href="/docs/virtual-account-numbers" className="dw-page-link"><span>Virtual Account Numbers</span><span className="dw-arrow">→</span></a>
          <a href="/docs/micro-deposit-verification" className="dw-page-link"><span>Micro-Deposit Verification</span><span className="dw-arrow">→</span></a>
        </div>
      </div>
    </div>

    {/* Transfers */}

    <div className="dw-index-card dw-border-top-rose">
      <div style={{ padding: '1.25rem' }}>
        <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '1rem' }}>
          <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
            <span className="dw-dot dw-dot-rose" />

            <h3 className="dw-text-heading" style={{ fontWeight: 600, color: '#0f172a' }}>Transfers</h3>
          </div>

          <span style={{ fontSize: '0.6875rem', fontWeight: 500, padding: '0.125rem 0.5rem', borderRadius: '9999px', background: 'rgba(244,63,94,0.06)', color: '#e11d48' }}>6 pages</span>
        </div>

        <div style={{ display: 'flex', flexDirection: 'column', gap: '0.125rem' }}>
          <a href="/docs/transfer-lifecycle" className="dw-page-link"><span>Transfer Lifecycle</span><span className="dw-arrow">→</span></a>
          <a href="/docs/transfer-processing-times" className="dw-page-link"><span>Processing Times</span><span className="dw-arrow">→</span></a>
          <a href="/docs/transfer-failures" className="dw-page-link"><span>Transfer Failures</span><span className="dw-arrow">→</span></a>
          <a href="/docs/same-day-ach" className="dw-page-link"><span>Same-Day ACH</span><span className="dw-arrow">→</span></a>
          <a href="/docs/instant-payments" className="dw-page-link"><span>Instant Payments</span><span className="dw-arrow">→</span></a>
          <a href="/docs/facilitator-fee" className="dw-page-link"><span>Facilitator Fee</span><span className="dw-arrow">→</span></a>
        </div>
      </div>
    </div>

    {/* Integrations */}

    <div className="dw-index-card dw-border-top-indigo">
      <div style={{ padding: '1.25rem' }}>
        <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '1rem' }}>
          <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
            <span className="dw-dot dw-dot-indigo" />

            <h3 className="dw-text-heading" style={{ fontWeight: 600, color: '#0f172a' }}>Integrations</h3>
          </div>

          <span style={{ fontSize: '0.6875rem', fontWeight: 500, padding: '0.125rem 0.5rem', borderRadius: '9999px', background: 'rgba(99,102,241,0.06)', color: '#4f46e5' }}>6 pages</span>
        </div>

        <div style={{ padding: '0.25rem 0.75rem 0.25rem', marginBottom: '0.25rem' }}>
          <span style={{ fontSize: '0.75rem', fontWeight: 500, color: '#6366f1' }}>Secure Exchange</span>
        </div>

        <div style={{ display: 'flex', flexDirection: 'column', gap: '0.125rem', paddingLeft: '0.75rem' }}>
          <a href="/docs/secure-exchange" className="dw-page-link"><span>Overview</span><span className="dw-arrow">→</span></a>
          <a href="/docs/secure-exchange/plaid" className="dw-page-link"><span>Plaid</span><span className="dw-arrow">→</span></a>
        </div>

        <div style={{ padding: '0.5rem 0.75rem 0.25rem', marginBottom: '0.25rem' }}>
          <span style={{ fontSize: '0.75rem', fontWeight: 500, color: '#6366f1' }}>Open Banking Services</span>
        </div>

        <div style={{ display: 'flex', flexDirection: 'column', gap: '0.125rem', paddingLeft: '0.75rem' }}>
          <a href="/docs/open-banking" className="dw-page-link"><span>Overview</span><span className="dw-arrow">→</span></a>
          <a href="/docs/open-banking/plaid" className="dw-page-link"><span>Plaid</span><span className="dw-arrow">→</span></a>
          <a href="/docs/open-banking/mx" className="dw-page-link"><span>MX</span><span className="dw-arrow">→</span></a>
          <a href="/docs/open-banking/bank-balance-check" className="dw-page-link"><span>Bank Balance Check</span><span className="dw-arrow">→</span></a>
        </div>
      </div>
    </div>

    {/* Webhooks */}

    <div className="dw-index-card dw-border-top-teal">
      <div style={{ padding: '1.25rem' }}>
        <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '1rem' }}>
          <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
            <span className="dw-dot dw-dot-teal" />

            <h3 className="dw-text-heading" style={{ fontWeight: 600, color: '#0f172a' }}>Webhooks</h3>
          </div>

          <span style={{ fontSize: '0.6875rem', fontWeight: 500, padding: '0.125rem 0.5rem', borderRadius: '9999px', background: 'rgba(20,184,166,0.06)', color: '#0d9488' }}>3 pages</span>
        </div>

        <div style={{ display: 'flex', flexDirection: 'column', gap: '0.125rem' }}>
          <a href="/docs/webhook-events" className="dw-page-link"><span>Webhook Events</span><span className="dw-arrow">→</span></a>
          <a href="/docs/operational-notifications" className="dw-page-link"><span>Operational Notifications</span><span className="dw-arrow">→</span></a>
          <a href="/docs/working-with-webhooks" className="dw-page-link"><span>Working with Webhooks</span><span className="dw-arrow">→</span></a>
        </div>
      </div>
    </div>
  </div>
</div>

<div style={{ paddingBottom: '3rem' }}>
  <div className="grid lg:grid-cols-2 gap-6">
    {/* API Reference */}

    <div className="dw-section-card">
      <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '1.25rem' }}>
        <h3 className="dw-text-heading" style={{ fontSize: '1.125rem', fontWeight: 600, color: '#0f172a' }}>API Reference</h3>
        <a href="/docs/api-reference" className="dw-link-orange" style={{ fontSize: '0.75rem' }}>Full API reference</a>
      </div>

      <p className="dw-text-body" style={{ fontSize: '0.875rem', color: '#64748b', lineHeight: 1.6, marginBottom: '1rem' }}>
        Explore endpoints, request formats, and response examples for every Dwolla resource.
      </p>

      <div style={{ display: 'flex', flexDirection: 'column', gap: '0.5rem' }}>
        <a href="/docs/api-reference/customers/create-a-customer" style={{ borderRadius: '0.5rem', border: '1px solid #e2e8f0', padding: '0.625rem 0.875rem', display: 'flex', alignItems: 'center', justifyContent: 'space-between', textDecoration: 'none' }}>
          <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
            <span className="dw-method-post">POST</span>
            <span className="dw-text-body" style={{ fontFamily: "'JetBrains Mono', monospace", fontSize: '0.8125rem', color: '#475569' }}>/customers</span>
          </div>

          <span style={{ color: '#94a3b8' }}>→</span>
        </a>

        <a href="/docs/api-reference/transfers/initiate-a-transfer" style={{ borderRadius: '0.5rem', border: '1px solid #e2e8f0', padding: '0.625rem 0.875rem', display: 'flex', alignItems: 'center', justifyContent: 'space-between', textDecoration: 'none' }}>
          <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
            <span className="dw-method-post">POST</span>
            <span className="dw-text-body" style={{ fontFamily: "'JetBrains Mono', monospace", fontSize: '0.8125rem', color: '#475569' }}>/transfers</span>
          </div>

          <span style={{ color: '#94a3b8' }}>→</span>
        </a>

        <a href="/docs/api-reference/funding-sources/list-customer-funding-sources" style={{ borderRadius: '0.5rem', border: '1px solid #e2e8f0', padding: '0.625rem 0.875rem', display: 'flex', alignItems: 'center', justifyContent: 'space-between', textDecoration: 'none' }}>
          <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
            <span className="dw-method-get">GET</span>

            <span className="dw-text-body" style={{ fontFamily: "'JetBrains Mono', monospace", fontSize: '0.8125rem', color: '#475569' }}>
              {'/customers/{id}/funding-sources'}
            </span>
          </div>

          <span style={{ color: '#94a3b8' }}>→</span>
        </a>

        <a href="/docs/api-reference/webhook-subscriptions/create-a-webhook-subscription" style={{ borderRadius: '0.5rem', border: '1px solid #e2e8f0', padding: '0.625rem 0.875rem', display: 'flex', alignItems: 'center', justifyContent: 'space-between', textDecoration: 'none' }}>
          <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
            <span className="dw-method-post">POST</span>
            <span className="dw-text-body" style={{ fontFamily: "'JetBrains Mono', monospace", fontSize: '0.8125rem', color: '#475569' }}>/webhook-subscriptions</span>
          </div>

          <span style={{ color: '#94a3b8' }}>→</span>
        </a>
      </div>
    </div>

    {/* SDK Install */}

    <div className="dw-section-card">
      <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '1.25rem' }}>
        <h3 className="dw-text-heading" style={{ fontSize: '1.125rem', fontWeight: 600, color: '#0f172a' }}>Install an SDK</h3>
        <a href="/docs/sdks-tools" className="dw-link-orange" style={{ fontSize: '0.75rem' }}>SDK documentation</a>
      </div>

      <p className="dw-text-body" style={{ fontSize: '0.875rem', color: '#64748b', lineHeight: 1.6, marginBottom: '1rem' }}>
        Get started with an official Dwolla SDK in minutes.
      </p>

      <Tabs>
        <Tab title="TypeScript">
          ```bash theme={"dark"}
          $ npm install dwolla
          ```

          ```typescript theme={"dark"}
          import { Dwolla } from "dwolla";

          const dwolla = new Dwolla({
            security: {
              clientID: process.env.DWOLLA_CLIENT_ID,
              clientSecret: process.env.DWOLLA_CLIENT_SECRET,
            },
            server: "sandbox", 
          });
          ```
        </Tab>

        <Tab title="PHP">
          ```bash theme={"dark"}
          composer require "dwolla/dwolla-php"
          ```

          ```php theme={"dark"}
          use Dwolla;
          use Dwolla\Models\Components;

          $sdk = Dwolla\Dwolla::builder()
              ->setSecurity(
                  new Components\Security(
                      clientID: 'YOUR_CLIENT_ID',
                      clientSecret: 'YOUR_CLIENT_SECRET',
                  )
              )
              ->build();
          ```
        </Tab>

        <Tab title="Python">
          ```bash theme={"dark"}
          pip install dwollav2
          ```

          ```python theme={"dark"}
          import dwollav2

          client = dwollav2.Client(
            key=os.environ["DWOLLA_APP_KEY"],
            secret=os.environ["DWOLLA_APP_SECRET"],
            environment="sandbox",
          )
          ```
        </Tab>

        <Tab title="C#">
          ```bash theme={"dark"}
          $ Install-Package Dwolla.Client -Version 6.0.1
          ```

          ```csharp theme={"dark"}
          var client = DwollaClient.Create(isSandbox: true);

          var tokenRes = await client.PostAuthAsync<AppTokenRequest, TokenResponse>(
           new Uri($"{client.AuthBaseAddress}/token"),
           new AppTokenRequest {Key = "...", Secret = "..."});
          ```
        </Tab>

        <Tab title="Ruby">
          ```bash theme={"dark"}
          $ gem install dwolla_v2
          ```

          ```ruby theme={"dark"}
          require "dwolla_v2"

          client = DwollaV2::Client.new(
            key: ENV["DWOLLA_APP_KEY"],
            secret: ENV["DWOLLA_APP_SECRET"],
            environment: :sandbox
          )
          ```
        </Tab>
      </Tabs>

      <div style={{ marginTop: '1rem', display: 'flex', gap: '1rem', fontSize: '0.875rem' }}>
        <a href="/docs/sdks-tools" className="dw-link-orange">SDK documentation</a>
        <a href="/docs/sdks-tools#tools" className="dw-link-orange">Postman collection</a>
      </div>
    </div>
  </div>
</div>
