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

# Invoices

> Close the MDF loop: partners submit an invoice, Introw generates a reimbursement statement with a PO and PDF, runs approval, and marks the project paid.

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>;

> The last step is getting the partner paid. Invoices turn approved spend into a reimbursement statement your finance team can act on - generated from the numbers already in Introw, run through approval, and closed out by marking the project paid - so nobody rebuilds the total in a spreadsheet.

## The problem it solves

Reimbursement is where MDF programs get stuck:

<Pains>
  | Without Introw                | With Introw                      |
  | ----------------------------- | -------------------------------- |
  | Totals are rebuilt by hand    | The statement writes itself      |
  | Finance has no clean document | A PO-numbered PDF                |
  | Approval is informal          | The same approvers as every step |
  | Nobody is sure it was paid    | Marking it paid updates the CRM  |
</Pains>

## Impact

Getting paid on time, with a document their own finance team accepts, is the part partners tell other partners about. It is the cheapest reputation you can buy.

<Impact>
  for your business

  * **In your CRM**
    Approved and paid both live on the CRM record, so nobody has to remember whether the money went out
  * **Cost to run**
    The statement is generated from the approved claim rather than rebuilt in a spreadsheet each time
  * **AI, not admin**
    The invoice runs the same AI review and approval chain as every other step, with no separate process

  for your partners

  * **Self-serve**
    They raise the invoice themselves against spend you have already approved
  * **Enabled**
    A PO-numbered statement and PDF their finance team will accept without a conversation
  * **Efficient**
    A payment deadline stated before they spend, so they can plan their own cash

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

<Personas>
  * **Partner Operations** - a last mile that does not need chasing
  * **Finance** - a PO-numbered statement and a clear paid state
  * **Partner Marketing & Enablement** - the invoice step done and projects marked paid
  * **Partners** - money that arrives when it was promised
</Personas>

## See it work

<Tour>
  * ![The Invoices step of a marketing fund, with its invoice intake form and reimbursement deadline.](https://assets.introw.io/docs/features/mdf/invoices/guides/configure-the-invoice-form/steps/04.png)

    **The step**

    The Invoices step, with the payment deadline set up front.

  * ![The invoice intake form partners submit to be reimbursed for approved spend.](https://assets.introw.io/docs/features/mdf/invoices/guides/configure-the-invoice-form/steps/05.png)

    **The form**

    The invoice form, built without code like the others.

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

    **Approve**

    Approvers in order before anything is paid.

  * ![The CRM automation that records an approved submission as an attributed record.](https://assets.introw.io/docs/features/mdf/claims/guides/configure-the-claim-form/steps/08.png)

    **Record it**

    The CRM record carries the outcome, so paid means paid.
</Tour>

## How it works

A partner submits an **invoice** through the fund's invoice form for reimbursement. From the approved amounts, Introw generates a **reimbursement statement**. It is a document whose line items are sourced from either the **approved budget** or the **sum of approved claims**, with a **PO number** and a downloadable **PDF**. It moves through its own stages: draft, pending approval, approved, paid. Once reimbursed, you **mark the project paid**, which updates its CRM status and logs the event, closing the loop.

Like every other step, the invoice form is no-code with its own approval flow, has its own reimbursement deadline on the timeline, and can be **turned off** if your program reimburses another way. Partners can submit and track invoices off-portal, and the statement, PO, and payment status live on the same CRM-linked project everyone already collaborates on.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  invoice["Partner submits invoice"] --> statement["Statement from budget or claims"]
  statement --> approve["Approval and PO"]
  approve --> paid["Mark paid, logged in CRM"]
```

## Run it from your AI assistant

<Headless>
  * Generate the reimbursement statement for Acme's approved claims.
  * Which MDF invoices are approved but not yet paid?
  * Mark Acme's Q2 project paid and notify them.
</Headless>

## Going deeper

<CardGroup cols={2}>
  <Card title="How to" icon="screwdriver-wrench" href="./technical">
    Configure the invoice form, reimbursement statements, and marking paid.
  </Card>

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

**Works with**

<CardGroup cols={2}>
  <Card title="Proof of Expense" icon="sack-dollar" href="/features/mdf/claims">
    Invoices reimburse approved claims.
  </Card>

  <Card title="Projects" icon="sack-dollar" href="/features/mdf/projects">
    Invoices close out a funded project.
  </Card>

  <Card title="Form Builder" icon="table-list" href="/features/forms/form-builder">
    The invoice form is built and customized no-code.
  </Card>
</CardGroup>
