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

# Resolve receipts

> Connect receipts to the bank charges they explain, or record the ones an owner paid personally, so every expense has proof and reaches the books.

export const AgentChat = ({messages = []}) => <div style={{
  border: "1px solid rgba(128,128,128,0.18)",
  borderRadius: "12px",
  padding: "16px",
  background: "rgba(128,128,128,0.05)",
  display: "flex",
  flexDirection: "column",
  gap: "14px",
  fontSize: "14px",
  lineHeight: 1.5,
  color: "inherit"
}}>
    {messages.map((m, i) => m.from === "you" ? <div key={i} style={{
  alignSelf: "flex-end",
  maxWidth: "85%",
  textAlign: "right"
}}>
          <div style={{
  fontSize: "11px",
  opacity: 0.5,
  marginBottom: "3px"
}}>You</div>
          <div style={{
  display: "inline-block",
  background: "rgba(128,128,128,0.16)",
  color: "inherit",
  padding: "8px 12px",
  borderRadius: "12px 12px 2px 12px",
  whiteSpace: "pre-wrap",
  textAlign: "left"
}}>
            {m.text}
          </div>
        </div> : <div key={i} style={{
  alignSelf: "flex-start",
  maxWidth: "90%"
}}>
          <div style={{
  display: "flex",
  alignItems: "center",
  gap: "6px",
  marginBottom: "4px"
}}>
            <span style={{
  fontSize: "11px",
  opacity: 0.5
}}>Agent</span>
            {m.tool ? <span style={{
  fontSize: "11px",
  opacity: 0.6,
  background: "rgba(128,128,128,0.15)",
  borderRadius: "6px",
  padding: "1px 6px"
}}>
                used {m.tool}
              </span> : null}
          </div>
          <div style={{
  whiteSpace: "pre-wrap"
}}>{m.text}</div>
          {m.choices ? <div style={{
  display: "flex",
  flexWrap: "wrap",
  gap: "6px",
  marginTop: "10px"
}}>
              {m.choices.map((c, j) => {
  const rec = c.toLowerCase().includes("recommend");
  return <span key={j} style={{
    borderRadius: "999px",
    padding: "4px 12px",
    fontSize: "13px",
    color: "inherit",
    border: "1px solid " + (rec ? "rgba(128,128,128,0.45)" : "rgba(128,128,128,0.25)"),
    background: rec ? "rgba(128,128,128,0.12)" : "transparent",
    fontWeight: rec ? 600 : 400
  }}>
                    {c}
                  </span>;
})}
            </div> : null}
        </div>)}
  </div>;

Receipts are proof. They explain what a purchase was for and give your accountant support for the expense.

Every receipt answers one question: did the money leave a connected account, or did someone pay out of their own pocket?

## Example

You buy materials at a hardware store on the business card. The bank feed shows the card charge; the receipt shows the materials, tax, and project. Equated connects the two so the expense is supported.

Your co-founder buys bar furniture on her personal card. No bank charge will ever appear, because the company's account never moved. Equated records the receipt as an expense the company owes her, so the purchase and its tax reach the books and her balance says what she is owed.

A refund receipt (a return or a credit) records the same way with the sign flipped, so what the company owes her falls by what came back.

## Two ways a receipt reaches the books

<Tabs>
  <Tab title="In the app">
    <Steps>
      <Step title="Receipt lands in the inbox">
        Upload the receipt, email it to [accounting@equated.co](mailto:accounting@equated.co), or sync it in.
      </Step>

      <Step title="Resolve it">
        Equated reads the card digits on the receipt and offers the likely route: **Match** when the card belongs to a connected account, **Record expense** when it does not or no card is printed. The other route is one click away.
      </Step>

      <Step title="Match: link the receipt">
        Pick the transaction it explains. The receipt is now linked to that charge as its proof, and if it has useful line items Equated can use them to improve the charge's accounting entry.
      </Step>

      <Step title="Record expense: post it against whoever paid">
        Choose who paid (a Due to Owner or Shareholder Loan account). Equated shows the entry it will write, expense lines and tax against that account, and posts it when you confirm. Undo is one click.
      </Step>
    </Steps>
  </Tab>

  <Tab title="With your AI">
    Ask your AI to resolve your receipts. It matches by amount, date, and merchant, and records the ones no connected account paid against the owner who did.

    You can also hand your AI a receipt photo or PDF right in the chat. It uploads the file into Equated and passes along any details you mention (vendor, total, date), so the receipt lands in your inbox ready to resolve.

    Not sure what to ask? The sparkle button in the **Receipts** header copies a ready-made prompt with your current inbox count already filled in. It also has a second prompt for receipts you have already matched, to split out sales tax the transaction posted as a single line.

    <AgentChat
      messages={[
  { from: "you", text: "Resolve my receipts." },
  { from: "agent", tool: "equated", text: "Matched 11 receipts to card charges. 6 were paid on a card ending 1003 that is not a connected account. Last time that card was Dora. Record them as expenses owed to her: $412.60 across 6 receipts, $47.30 of it recoverable tax?" },
  { from: "you", text: "Yes, that's Dora's card." },
  { from: "agent", tool: "equated", text: "Done. Due to Owner, Dora now shows $412.60 owed. One receipt is left over: a $240 hardware-store receipt on the business card with no matching charge yet. It may post in a day or two." },
]}
    />
  </Tab>
</Tabs>

## Why it matters

Matched receipts make month-end faster. Fewer charges need a second look when you review the statement.

Recorded receipts are the only way an owner-funded purchase reaches the books at all. Without them the expense and its recoverable tax are missing, and the owner's balance reads as if the company were owed money it is not.
