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

# Dub Partners Overview

> Learn how you can use Dub to recruit, manage, and pay out your affiliates, publishers, influencers, UGC creators, user referrals, and more.

export const PayoutSupportedCountries = () => {
  const PAYOUT_METHODS = [{
    value: "all",
    label: "All"
  }, {
    value: "stablecoin",
    label: "Stablecoin"
  }, {
    value: "connect",
    label: "Bank account"
  }, {
    value: "paypal",
    label: "PayPal"
  }];
  const [countries, setCountries] = useState([]);
  const [expanded, setExpanded] = useState(false);
  const [searchQuery, setSearchQuery] = useState("");
  const [payoutMethod, setPayoutMethod] = useState("all");
  const showCount = 21;
  useEffect(() => {
    fetch("https://app.dub.co/api/supported-countries").then(r => r.json()).then(data => setCountries(data)).catch(() => {});
  }, []);
  const filtered = useMemo(() => {
    const q = searchQuery.trim().toLowerCase();
    return countries.filter(c => {
      const matchesSearch = !q || (c.name || "").toLowerCase().includes(q) || (c.code || "").toLowerCase().includes(q);
      const methods = Array.isArray(c.methods) ? c.methods : [];
      const matchesMethod = payoutMethod === "all" || methods.includes(payoutMethod);
      return matchesSearch && matchesMethod;
    });
  }, [countries, searchQuery, payoutMethod]);
  if (!countries.length) return <div style={{
    height: "200px"
  }} />;
  const displayed = expanded ? filtered : filtered.slice(0, showCount);
  const isCollapsed = filtered.length > showCount && !expanded;
  return <div className="not-prose relative">
      <div className="flex flex-col md:flex-row gap-2 pb-2">
        <input type="search" placeholder="Search countries..." value={searchQuery} onChange={e => setSearchQuery(e.target.value)} className="w-full rounded-lg border border-neutral-200 bg-white px-3 py-1.5 text-sm text-neutral-900 placeholder:text-neutral-400 focus:border-neutral-400 focus:outline-none focus:ring-1 focus:ring-neutral-400 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder:text-neutral-500 dark:focus:border-neutral-600 dark:focus:ring-neutral-600" aria-label="Search countries" />
        <div className="flex flex-wrap md:flex-nowrap gap-2">
          {PAYOUT_METHODS.map(({value, label}) => <button key={value} type="button" onClick={() => setPayoutMethod(value)} className={`rounded-full px-4 py-1.5 text-sm whitespace-nowrap transition-colors ${payoutMethod === value ? "bg-neutral-900 text-white dark:bg-neutral-100 dark:text-neutral-900" : "border border-neutral-200 bg-white text-neutral-600 hover:bg-neutral-50 hover:text-neutral-900 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-400 dark:hover:bg-neutral-700 dark:hover:text-neutral-200"}`}>
              {label}
            </button>)}
        </div>
      </div>
      <div style={isCollapsed ? {
    maskImage: "linear-gradient(to bottom, black calc(100% - 80px), transparent)",
    WebkitMaskImage: "linear-gradient(to bottom, black calc(100% - 80px), transparent)",
    maxHeight: "420px",
    overflow: "hidden"
  } : {
    paddingBottom: expanded ? "48px" : "0"
  }} className="grid grid-cols-2 gap-5 py-4 sm:grid-cols-3">
        {displayed.map(({code, name, methods = []}) => {
    const methodLabels = PAYOUT_METHODS.filter(m => methods.includes(m.value)).map(m => m.label).join(" · ");
    return <div key={code} className="flex items-start gap-3">
              <img src={`https://hatscripts.github.io/circle-flags/flags/${code.toLowerCase()}.svg`} alt={code} width={32} height={32} className="size-5 shrink-0 rounded-full border border-neutral-200 shadow-sm dark:border-neutral-700 mt-0.5" draggable={false} noZoom />
              <div className="min-w-0 flex-1">
                <div className="text-sm font-medium text-neutral-900 dark:text-neutral-100">
                  {name}
                </div>
                {methodLabels ? <div className="mt-0.5 flex items-center gap-1 text-[10px] leading-tight text-neutral-500 dark:text-neutral-400">
                    <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" className="size-2.5">
                      <g fill="currentColor">
                        <path d="M15.25,9.75H4.75c-1.105,0-2-.895-2-2V3.75" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.5" />
                        <polyline fill="none" points="11 5.5 15.25 9.75 11 14" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.5" />
                      </g>
                    </svg>
                    {methodLabels}
                  </div> : null}
              </div>
            </div>;
  })}
      </div>
      {filtered.length === 0 ? <p className="py-6 text-center text-sm text-neutral-500 dark:text-neutral-400">
          No countries match your filters.
        </p> : filtered.length > showCount && <button onClick={() => setExpanded(!expanded)} className="absolute left-1/2 -translate-x-1/2 transform rounded-full border border-neutral-200 bg-white px-4 py-1 text-sm text-neutral-500 shadow-sm hover:text-neutral-700 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-400 dark:hover:text-neutral-200" style={{
    bottom: isCollapsed ? "24px" : "-8px"
  }}>
            {expanded ? "Show less" : `Show ${filtered.length - showCount} more`}
          </button>}
    </div>;
};

export const ImageCtaCard = ({img, alt, ctaText, ctaHref}) => <div className="image-cta-card group relative rounded-xl overflow-hidden border border-zinc-950/10 dark:border-white/10 not-prose">
    <style>{`
      @media (hover: hover) and (pointer: fine) {
        .image-cta-card .image-cta-card-btn:hover {
          --tw-drop-shadow: drop-shadow(0 8px 12px #222A350d) drop-shadow(0 32px 80px #2f30370f);
          filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
        }
      }
    `}</style>
    <a href={ctaHref} target="_blank" rel="noopener noreferrer" className="block">
      <img src={img} alt={alt} className="w-full h-auto transition-all duration-300 group-hover:scale-105" />
      <div className="absolute inset-0 flex items-center justify-center bg-white/60 opacity-0 group-hover:opacity-100 transition-opacity duration-300" style={{
  "--tw-backdrop-blur": "blur(8px)",
  WebkitBackdropFilter: "var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)",
  backdropFilter: "var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)"
}}>
        <span className="image-cta-card-btn inline-block rounded-full border border-gray-200 bg-white px-8 py-2 transition-shadow cursor-pointer font-medium text-sm text-zinc-950 dark:text-zinc-950">
          {ctaText}
        </span>
      </div>
    </a>
  </div>;

<Tip>
  This feature is only available on [Business plans and
  above](https://dub.co/pricing/partners).
</Tip>

In today's day and age, especially with the rise of AI, the best ideas and products are no longer sufficient to rise above the competition and become a category leader.

What works is having a powerful distribution network that can produce consistent, repeatable, and profitable results – ideally on autopilot.

A good example of this is a product-led partner program – think Dropbox's famous "Refer a friend" program, or Framer's beloved partner program that generates [close to \$1M in payouts](https://dub.co/customers/framer) every month.

**This is where [Dub Partners](https://dub.co/partners) comes in.**

<Frame>
  <img src="https://assets.dub.co/cms/dub-partners.jpg" alt="Dub Partners" />
</Frame>

With Dub Partners, you can [recruit](/help/article/inviting-partners), [manage](/help/article/managing-program-partners), and [pay out](/help/article/partner-payouts) your partners – whether they're affiliates, publishers, influencers, UGC creators, user referrals, or more.

## Dub Partners platform tour

Here's a quick [9-min video](https://supercut.ai/share/dub/I85bqEKFm5aDaN_DC1hGoZ) that walks you through the key features of Dub Partners and how you can use it to scale your partner revenue:

<Frame>
  <div className="relative aspect-[100/69] w-full overflow-visible">
    <iframe allow="fullscreen; clipboard-write; encrypted-media; picture-in-picture" allowfullscreen mozallowfullscreen webkitallowfullscreen frameborder="0" src="https://supercut.ai/embed/dub/I85bqEKFm5aDaN_DC1hGoZ?embed=full" className="absolute inset-0 h-full w-full rounded-lg border-0" title="Dub Partners Platform Tour" />
  </div>
</Frame>

## Dub Partners features

Here are some of Dub Partners' key features:

1. [Real-time analytics + reliable attribution](#real-time-reliable-attribution)
2. [Powerful reward structures (CPA/rev-share, CPL, CPC) with flexible conditions](#flexible-reward-structures)
3. [Social metrics bounties for influencer / UGC campaigns](#social-metrics-bounties)
4. [1-click global payouts + tax compliance](#global-payouts-%2B-tax-compliance)
5. [Fraud detection (paid ads, self-referrals, etc.)](#fraud-detection)
6. [Dual-sided incentives (via referral links / discount codes)](#dual-sided-incentives)
7. [Generate branded landing pages / application forms with AI](#landing-page-%2B-application-forms)
8. [Embed a referral dashboard directly within your app](#embedded-referral-dashboard)

### Real-time, reliable attribution

Built on top of Dub's [enterprise-grade attribution infrastructure](/docs/concepts/attribution), Dub Partners gives both you and your partners real-time visibility into the performance of your partner program, with the ability to:

* View [partner group](/help/article/partner-groups)-level analytics (conversion rates, revenue, etc.)
* Measure [individual partner performance](https://dub.co/changelog/new-partner-stats) (EPC, LTV, ROAS)
* Create custom reports with [advanced analytics filtering](/help/article/dub-analytics#advanced-analytics-filters)

<Frame>
  <img src="https://assets.dub.co/cms/program-analytics-funnel.png" alt="Time-series chart" />
</Frame>

On top of that, Dub's [best-in-class Stripe integration](https://dub.co/integrations/stripe) (which you can [install in just a few clicks](/docs/integrations/stripe)) automatically tracks:

* sale (both one-time and recurring)
* [free trial](/docs/integrations/stripe#tracking-free-trials) lead events
* [refund events](/docs/conversions/sales/refunds)

...and reconciles them with your [partner commissions](/help/article/partner-commissions) – no manual calculations required.

### Flexible reward structures

With Dub Partners, you can create [flexible reward structures](/help/article/partner-rewards) to drive partner engagement and revenue:

| Reward type       | Description                                                                                                                                                                     |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **CPA/rev-share** | This is the most common reward type, where you reward partners for driving sales to your product either via a rev-share or fixed-price commission.                              |
| **CPL**           | A more effective alternative to pay-per-click, where you reward partners for [qualified leads](/docs/conversions/leads/deferred) (e.g. demo requests, free trial signups, etc.) |
| **CPC**           | Rewarding partners for driving traffic to your product – similar to how Google Ads' pay-per-click works.                                                                        |

On top of that, you can also set geo-specific, product-specific, or subscription-specific [reward conditions](/help/article/partner-rewards#adding-reward-conditions):

* [Geo-specific rewards](/help/article/partner-rewards#geo-specific) (e.g. higher rewards for sales and leads from a specific country)
* [Product-specific rewards](/help/article/partner-rewards#product-spotlight) (e.g. higher rewards for sales of specific products)
* [Partner performance tiers](/help/article/partner-rewards#partner-performance-tiers) (e.g. higher rewards for partners with more than 100 conversions)
* [Staggered reward durations](/help/article/partner-rewards#staggered-reward-durations) (e.g. higher rewards for the first 12 months, then a lower reward for the rest of the customer's lifetime)
* [Sale amount modifiers](/help/article/partner-rewards#sale-amount-modifiers) (e.g. higher rewards for sales over a specific amount)

<Tip>
  Looking to set up non-monetary rewards for your partners (e.g. free credits,
  free months)? [Check out our guide here](/help/article/non-monetary-rewards).
</Tip>

### Social metrics bounties

One of Dub's unique features is the ability to [reward partners for creating viral social content](/help/article/program-bounties#social-metrics) about your product via a CPM model.

<Frame>
  <video src="https://assets.dub.co/cms/social-metrics-bounties.mp4" loop autoPlay muted playsInline />
</Frame>

Some examples include:

* Pay \$1,000 if your X/Twitter post gets 1M views
* Pay \$500 per 10K views on YouTube, up to 100K views

Aside from that, you can also reward partners a flat rate via [submission bounties](/help/article/program-bounties#manual-submission), as well as based on their performance on Dub via [performance bounties](/help/article/program-bounties#performance-bounties).

### Global payouts + tax compliance

Dub Partners supports [1-click payouts](/help/article/partner-payouts) to your partners worldwide.

If you're running a partner program with hundreds of partners, instead of manually sending payouts to each partner, you can use Dub to pay your partners in one click.

<Frame>
  <video src="https://assets.dub.co/cms/dub-partners-global-payouts.mp4" loop autoPlay muted playsInline />
</Frame>

We also provide invoices for each payout, so you can easily track your spend and reconcile your payments.

For US-based partners, Dub automatically handles [tax compliance](/help/article/partner-payouts#tax-compliance) by collecting W-9 forms and sending out 1099-NEC forms to individuals or entities that received \$600 or more in payments for a given fiscal year.

Here's the list of supported payout countries on Dub:

<PayoutSupportedCountries />

### Fraud detection

As your program grows, it's critical to safeguard your revenue by detecting and preventing fraudulent activity. Dub Partners comes with several fraud detection mechanisms to help you catch and take action on any suspicious activity:

* [Paid traffic detection](/help/article/fraud-detection#paid-traffic)
* Self-referrals / matching customer email
* Duplicate partner accounts / payout methods
* Cross-program ban

Learn more about how [fraud detection works](/help/article/fraud-detection) on Dub Partners.

### Dual-sided incentives

With Dub Partners, you can create dual-sided incentives for your partners to give special discounts to their users – whether they're signing up via a [referral link](/help/article/dual-sided-incentives#option-1-direct-link-based-discounts-recommended) or a [discount code](/help/article/dual-sided-incentives#option-2-using-stripe-promo-codes-no-code-required).

<Frame>
  <video src="https://assets.dub.co/cms/dub-partners-dual-sided-incentives.mp4" loop autoPlay muted playsInline />
</Frame>

Some examples include:

* 25% discount for the first 12 months
* 30% lifetime discount
* \$50 one-off discount

This can drive powerful word-of-mouth growth as partners are more likely to share their link if it gives their audience additional discounts, and their users are more likely to click on their links if they're getting a special deal.

Learn more about [how to create dual-sided incentives](/help/article/dual-sided-incentives) for your partner program.

### Landing page + application forms

You can also use our intelligent AI landing page generator to create a compelling, [branded landing page](/help/article/program-landing-page) for your program to drive partner signups.

<Frame>
  <video src="https://assets.dub.co/cms/dub-partners-branded-landing-pages.mp4" loop autoPlay muted playsInline />
</Frame>

You can also create customized [application forms](/help/article/program-application-form) for your partners to collect the information you need to review their applications.

### Embedded referral dashboard

One of the unique features of Dub Partners is the ability to create an embedded referral dashboard directly inside your application.

<Frame>
  <video src="https://assets.dub.co/cms/dub-partners-whitelabeled-embed.mp4" loop autoPlay muted playsInline />
</Frame>

This allows you to seamlessly onboard your users to your referral program, without them needing to leave your app and sign up on a third-party platform.

[Read the guide](/docs/partners/embedded-referrals) on how to set this up, or check out this open-source example app that shows the embedded referral dashboard in action:

<ImageCtaCard img="https://assets.dub.co/misc/acme-referrals-embed-og.png" alt="Dub embedded referral dashboard demo app" ctaText="View example app ↗" ctaHref="https://acme.dub.sh/" />

## Get started

With Dub Partners, you can build a powerful, scalable word-of-mouth flywheel by incentivizing both your users and external partners to help you grow.

To get started with Dub Partners, follow our [program quickstart](/help/article/setting-up-your-program) and [conversion tracking](/docs/quickstart/server) guides.

<CardGroup cols={2}>
  <Card title="Setting up your program" icon="rocket" href="/help/article/setting-up-your-program">
    Step-by-step guide from zero to a live partner program
  </Card>

  <Card title="Conversion tracking" icon="arrow-progress" href="/docs/quickstart/server">
    Track conversions and attribute sign-ups and purchases
  </Card>
</CardGroup>

## Related articles

<CardGroup cols={2}>
  <Card title="Partner tags" icon="tags" href="/help/article/partner-tags">
    Organize and filter partners with flexible internal labels
  </Card>

  <Card title="Partner groups" icon="users" href="/help/article/partner-groups">
    Segment partners by rewards, discounts, and performance
  </Card>

  <Card title="Inviting partners" icon="user-plus" href="/help/article/inviting-partners">
    Add partners via dashboard, API, or application form
  </Card>

  <Card title="Partner rewards" icon="money-bill" href="/help/article/partner-rewards">
    Create flexible reward structures for partners
  </Card>

  <Card title="Embedded referral dashboard" icon="grid-2" href="/docs/partners/embedded-referrals">
    Enroll partners directly from wihin your app
  </Card>
</CardGroup>
