> ## 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.

# Proof of Expense

> Partners submit MDF claims with receipts and invoices against an approved project - draws down the budget and builds an auditable, CRM-linked spend record.

export const Headless = ({children, intro = true}) => {
  const [copied, setCopied] = useState(null);
  const copy = event => {
    const row = event.target.closest("li");
    if (!row) return;
    const text = row.textContent.trim();
    try {
      navigator.clipboard?.writeText(text);
    } catch {}
    setCopied(text);
    setTimeout(() => setCopied(null), 1600);
  };
  return <>
      {intro ? <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> : null}

      {children ? <div className="not-prose" data-prompts="block">
          <div data-prompts="head">
            <span>{copied ? "Copied" : "Try it from your LLM"}</span>
          </div>
          <div data-prompts="rows" onClick={copy}>
            {children}
          </div>
          <a href="/headless/prompts" data-prompts="more">
            See all prompts
          </a>
        </div> : <Card title="See the headless motion" icon="wand-magic-sparkles" href="/headless">
          The agentic motion - lifecycle deep dives and a Claude Code skill library that run your partner program from
          Claude, ChatGPT, Slack, and your CRM.
        </Card>}
    </>;
};

export const Tour = ({children}) => {
  const [active, setActive] = useState(0);
  const wrappers = (Array.isArray(children) ? children : [children]).filter(c => c && c.props);
  const frames = wrappers.length === 1 && Array.isArray(wrappers[0].props.children) ? wrappers[0].props.children.filter(c => c && c.props) : [];
  if (frames.length < 2) {
    return <div className="not-prose" data-overview="tour">
        {children}
      </div>;
  }
  const thumb = (frame, index) => <button key={index} type="button" onClick={() => setActive(index)} aria-label={`Frame ${index + 1}`} data-active={index === active ? "true" : "false"} data-index={index + 1}>
      {frame}
    </button>;
  return <div className="not-prose" data-overview="tour">
      <div data-tour="hero">{frames[active] ?? frames[0]}</div>
      <div data-tour="strip">{frames.map((frame, index) => thumb(frame, index))}</div>
    </div>;
};

export const Impact = ({children}) => <div className="not-prose" data-overview="impact">
    {children}
  </div>;

export const Personas = ({children}) => <div className="not-prose" data-overview="personas">
    {children}
  </div>;

export const Pains = ({children}) => <div className="not-prose" data-overview="pains">
    {children}
  </div>;

> Once a partner runs the activity, they have to prove what they spent. Proof of expense is how they do it: claims with receipts and invoices attached, filed against the approved project, drawing down the budget, and reviewed the same way every other submission is - so reimbursement rests on evidence, not trust.

## The problem it solves

Reimbursing on receipts scattered across inboxes is slow and risky:

<Pains>
  | Without Introw              | With Introw                          |
  | --------------------------- | ------------------------------------ |
  | Receipts arrive by email    | Proof goes on a claim form           |
  | Spend is hard to match up   | Approved claims draw down the budget |
  | Every claim needs a look    | AI clears the easy ones              |
  | The paper trail is a folder | The claim is the record              |
</Pains>

## Impact

Nothing sours a co-marketing relationship faster than a partner carrying your spend for a quarter. A stated deadline and a fast clear is why they front the money for you next time.

<Impact>
  for your business

  * **In your CRM**
    The approved claim is the auditable record, linked to the activity it paid for and the partner who ran it
  * **AI, not admin**
    AI clears the routine claims against the rules you set, so your team reviews the exceptions and not the pile
  * **Cost to run**
    Approved claims draw down the fund automatically, so the remaining budget is never a manual calculation

  for your partners

  * **Self-serve**
    They submit their own evidence the moment the activity finishes, without waiting to be asked
  * **Enabled**
    The window and the evidence requirements are stated before they spend a euro
  * **Efficient**
    A clean claim clears without a chase, so the reimbursement actually moves

  [A day in the life of a co-sell partner](/days-in-the-life/co-sell-partner)
</Impact>

<Personas>
  * **Partner Operations** - claims on a deadline, not a chase list
  * **Finance** - proof behind every euro out
  * **Partner Marketing & Enablement** - claims reviewed against the proof attached
  * **Partners** - send it once, get paid
</Personas>

## See it work

<Tour>
  * ![The Claims step of a marketing fund, with its claim intake form, sequential acceptance steps and a relative claim submission window.](https://assets.introw.io/docs/features/mdf/funds-allocation/guides/set-up-an-mdf-program/steps/07.png)

    **The step**

    The Claims step: a form, approvers, and a deadline.

  * ![The claim intake form partners use to submit expenses and supporting evidence for reimbursement.](https://assets.introw.io/docs/features/mdf/claims/guides/configure-the-claim-form/steps/04.png)

    **The form**

    What partners send you, and what they attach.

  * ![Sequential human approval gates on the claim form, each accepting before the next.](https://assets.introw.io/docs/features/mdf/claims/guides/configure-the-claim-form/steps/05.png)

    **Approve**

    Approvers in order, so nothing clears on one opinion.

  * ![The claim submission window on a fund, set as a relative number of days after the funded activity.](https://assets.introw.io/docs/features/mdf/claims/guides/configure-the-claim-form/steps/06.png)

    **The deadline**

    A claim window both sides see, instead of a reminder email.
</Tour>

## How it works

A partner submits a **claim** against an approved project through the fund's claim form, attaching **proof of spend** - receipts, invoices, creative - as document uploads. Each claim is a CRM-linked record with an amount and date, and the sum of approved claims draws down the project's approved budget so you always know what is left.

Claims run through the standard review flow: **agentic approval** can clear straightforward claims automatically above a certainty threshold, and anything that needs a human routes through your approval steps. There is no separate "statements" screen - the approved claims against a project **are** the auditable statement of reimbursable spend your finance team reimburses against. Partners can submit claims from the portal or off it, and the whole thing is worked in the project's collaborative workspace with a claim-window deadline.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  claim["Claim with receipts"] --> drawdown["Draws down the approved amount"]
  drawdown --> review["Agentic or human approval"]
  review --> statement["Auditable statement of spend"]
```

## Run it from your AI assistant

<Headless>
  * Submit an MDF claim for Acme's webinar: \$3.2k with the invoice attached.
  * Show all MDF claims pending approval this month.
  * How much of Acme's approved budget is left after claims?
</Headless>

## Going deeper

<CardGroup cols={2}>
  <Card title="How to" icon="screwdriver-wrench" href="./technical">
    Configure the claim form, proof uploads, approval, and claim window.
  </Card>

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

**Works with**

<CardGroup cols={2}>
  <Card title="Projects" icon="sack-dollar" href="/features/mdf/projects">
    Claims file against an approved proposal.
  </Card>

  <Card title="Invoices" icon="sack-dollar" href="/features/mdf/invoices">
    Approved claims roll into a reimbursement statement.
  </Card>

  <Card title="Submissions & Approvals" icon="table-list" href="/features/forms/submissions-approvals">
    Claims are reviewed like any submission.
  </Card>
</CardGroup>
