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

# Payouts

> Turn approved commission into partner payouts - grouped, approved, paid, and documented with statements partners can see.

export const Headless = ({prompts = []}) => {
  const PromptRow = ({prompt}) => {
    const [copied, setCopied] = useState(false);
    const copy = () => {
      try {
        navigator.clipboard?.writeText(prompt);
      } catch {}
      setCopied(true);
      setTimeout(() => setCopied(false), 1600);
    };
    return <div className="group flex items-center justify-between gap-3 px-4 py-3 transition-colors hover:bg-[#FD90FF]/[0.06]">
        <span className="text-sm leading-relaxed text-zinc-700 dark:text-zinc-200">{prompt}</span>
        <button type="button" onClick={copy} aria-label={copied ? "Copied to clipboard" : "Copy prompt"} className={`shrink-0 rounded-md p-1.5 transition-all hover:bg-[#FD90FF]/10 focus:opacity-100 focus:outline-none ${copied ? "text-[#FD90FF] opacity-100" : "text-zinc-400 opacity-0 group-hover:opacity-100 dark:text-zinc-500"}`}>
          {copied ? <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4" aria-hidden="true">
              <path d="M20 6L9 17l-5-5" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg> : <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4" aria-hidden="true">
              <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" strokeWidth="2" />
              <path d="M5 15V5a2 2 0 0 1 2-2h10" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg>}
        </button>
      </div>;
  };
  return <>
      <p>
        Introw is <strong>headless</strong> by design: run everything here in plain language from Claude, ChatGPT,
        Slack, Teams, or your own CRM through Introw's <a href="/features/developer/mcp">MCP server</a>, with every
        action written straight back to your CRM source of truth. The portal is one surface, never the only one.
      </p>

      {prompts.length > 0 ? <div className="not-prose my-6 overflow-hidden rounded-2xl border border-zinc-200/80 bg-white shadow-sm dark:border-white/10 dark:bg-white/[0.02]">
          <div className="flex items-center gap-2 border-b border-zinc-200/80 bg-gradient-to-r from-[#FD90FF]/10 via-[#FD90FF]/5 to-transparent px-4 py-2.5 dark:border-white/10">
            <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4 text-[#FD90FF]" aria-hidden="true">
              <path d="M12 2.5l2 5.5 5.5 2-5.5 2-2 5.5-2-5.5L4.5 10l5.5-2 2-5.5z" fill="currentColor" />
              <path d="M18.5 14l1 2.6 2.6 1-2.6 1-1 2.6-1-2.6-2.6-1 2.6-1 1-2.6z" fill="currentColor" opacity="0.55" />
            </svg>
            <span className="text-xs font-semibold uppercase tracking-wider text-zinc-500 dark:text-zinc-400">
              Try it from your LLM
            </span>
          </div>

          <div className="flex flex-col divide-y divide-zinc-100 dark:divide-white/[0.06]">
            {prompts.map(prompt => <PromptRow key={prompt} prompt={prompt} />)}
          </div>

          <a href="/headless" className="flex items-center justify-between gap-2 border-t border-zinc-200/80 px-4 py-2.5 text-sm font-medium text-zinc-600 no-underline transition-colors hover:text-[#FD90FF] dark:border-white/10 dark:text-zinc-300">
            <span>See the full headless playbook</span>
            <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4" aria-hidden="true">
              <path d="M5 12h14M13 6l6 6-6 6" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
          </a>
        </div> : <Card title="See the headless motion" icon="wand-magic-sparkles" href="/headless">
          The agentic playbook - lifecycle deep dives and a Claude Code skill library that run your partner program
          from Claude, ChatGPT, Slack, and your CRM.
        </Card>}
    </>;
};

> Payouts turn approved commission lines into money in partners' hands: group lines into a payout, move it through approval to paid, generate a statement, and let partners track it in the portal.

## What it does

A payout groups a partner's approved commission lines into one amount to be paid. You create
payout batches by period, filter, or selection, then move each partner's payout through clear
stages, from draft through approval and invoicing to paid. Along the way Introw generates
statements, and you can request a partner invoice and record purchase order numbers, keeping the
whole payment process organized in one place.

Partners are not left guessing. They see their potential, expected, upcoming, and paid amounts in
the portal, can upload an invoice and set a PO when asked, and can even query commission status
through an AI assistant. Finance gets a documented, auditable trail, and the same payout data is
available through the API for downstream systems.

## The problem it solves

Paying partners from spreadsheets is slow, opaque, and error-prone:

* **Payments are assembled by hand** → Group approved lines into payout batches automatically.
* **Approval is ad hoc** → Move payouts through clear, auditable stages.
* **Partners chase you for status** → Partners see and track their payouts in the portal.
* **Statements are manual** → Generate payout statements in-product.

## From problem to solution

Payouts give the payment process structure. Batch the approved lines, run each through approval to
paid, and generate statements partners can see. Finance gets an auditable trail and partners get
transparency, all without spreadsheets.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  batch["Batch approved lines"] --> approve["Run through approval"]
  approve --> paid["Paid"]
  paid --> statement["Statement partners see"]
```

## Use cases

<CardGroup cols={2}>
  <Card title="Batch and pay" icon="circle-check">
    Group approved lines into partner payouts.
  </Card>

  <Card title="Run a clear approval flow" icon="circle-check">
    Move payouts through documented stages.
  </Card>

  <Card title="Give partners transparency" icon="circle-check">
    Let partners track payouts in the portal.
  </Card>

  <Card title="Document everything" icon="circle-check">
    Generate statements and record invoices and POs.
  </Card>
</CardGroup>

## Impact

* **Low total cost of ownership** - Partner ops runs payouts end to end with no engineering.
* **Work where you already are** - Partners track earnings in the portal or via an AI assistant.

## Who it's for

<CardGroup cols={2}>
  <Card title="Partner Operations" icon="user">
    Creates and manages partner payouts.
  </Card>

  <Card title="Finance" icon="user">
    Approves payouts and reconciles statements.
  </Card>
</CardGroup>

## Works with

{/* CONNECTS:START - generated content goes here */}

<CardGroup cols={2}>
  <Card title="Commission Lines" icon="hand-holding-dollar" href="/features/commissions/commission-lines">
    Payouts batch the approved lines.
  </Card>

  <Card title="Billing & Subscriptions" icon="plug" href="/features/integrations/billing">
    Reconcile payouts to invoices.
  </Card>

  <Card title="Multi-currency" icon="language" href="/features/localization/multi-currency">
    Pay each partner in their currency.
  </Card>
</CardGroup>

## Headless

<Headless
  prompts={[
"Show my most recent payouts and their stage.",
"What commission is due to be paid out next month, and to whom?",
"How much has been paid to Acme year to date?",
"Which payouts are still in review?",
]}
/>

## Going deeper

<CardGroup cols={2}>
  <Card title="How to" icon="screwdriver-wrench" href="./technical">
    Setup, configuration, and all how-to guides.
  </Card>

  <Card title="API reference" icon="code" href="/general/introduction">
    Integration surface and code.
  </Card>
</CardGroup>
