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

# Reconciliation

> Match payments to invoices using customer, amount, date, and email data

export const AriMention = () => <span className="slack-mention">@Ari</span>;

export const SlackMessage = ({children, name = "Bailey", initials = "B", color = "#611f69", avatar = "/images/bailey-avatar.png", app = false, time = "2:47 PM"}) => <div className="slack-msg not-prose">
    <div className="slack-avatar" style={{
  backgroundColor: avatar ? "transparent" : color
}}>
      {avatar ? <img src={avatar} alt={name} /> : initials}
    </div>
    <div className="slack-msg-body">
      <span className="slack-name">{name}</span>
      {app ? <span className="slack-app-badge">APP</span> : null}
      <span className="slack-time">{time}</span>
      <div className="slack-text">{children}</div>
    </div>
    <div className="slack-actions">
      <button type="button" className="slack-action-btn" aria-label="Copy message" title="Copy message" onClick={e => {
  const msg = e.currentTarget.closest(".slack-msg");
  const el = msg && msg.querySelector(".slack-text");
  if (el && navigator.clipboard) {
    navigator.clipboard.writeText(el.innerText);
    const btn = e.currentTarget;
    const prev = btn.innerHTML;
    btn.innerHTML = '<svg viewBox="0 0 24 24" fill="none" stroke="#2AD48A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>';
    setTimeout(() => {
      btn.innerHTML = prev;
    }, 1200);
  }
}}>
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
          <rect x="9" y="9" width="13" height="13" rx="2" ry="2" />
          <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" />
        </svg>
      </button>
    </div>
  </div>;

Reconciliation is the process of matching payments received to invoices that were sent. Ari automates this tedious work, using customer information, invoice amounts, dates, and email records to match payments to invoices accurately. Spend less time in spreadsheets, more time on strategy.

## How Reconciliation Works

Ari syncs payment data from Stripe and invoice data from your system, then intelligently matches them using multiple data points.

<AccordionGroup>
  <Accordion title="How does Ari match payments to invoices?">
    Ari uses a multi-factor matching approach:

    * **Customer**: Must match the invoice customer
    * **Amount**: Payment amount matches invoice total or partial payment is allocated
    * **Date**: Payment date should be close to invoice due date
    * **Email**: Payment method or notification confirms customer identity
    * **Reference**: Invoice number in payment memo or notes
  </Accordion>

  <Accordion title="What about partial payments?">
    Ari can match partial payments and track them against invoices. Multiple partial payments can be applied to a single invoice.
  </Accordion>

  <Accordion title="What about overpayments?">
    If a payment exceeds invoice total, Ari flags it for review. Overpayments can be applied to future invoices or refunded.
  </Accordion>
</AccordionGroup>

## Automatic Reconciliation

Ari reconciles payments automatically based on Stripe sync data and invoice records.

<Steps>
  <Step title="Payments received">
    Payments come into Stripe from customers
  </Step>

  <Step title="Ari syncs data">
    Ari checks Stripe and your invoice system for new activity
  </Step>

  <Step title="Intelligent matching">
    Ari matches payments to invoices using customer, amount, and date
  </Step>

  <Step title="Confirmation">
    High-confidence matches are marked complete. Uncertain matches are flagged
  </Step>

  <Step title="Review in Slack">
    Check reconciliation status anytime with Ari
  </Step>
</Steps>

<Tip>
  Most payments are matched automatically. You only need to review flagged or ambiguous matches.
</Tip>

## Checking Reconciliation Status

View reconciliation information for specific customers or time periods.

### Example Commands

<SlackMessage><AriMention /> show me the reconciliation status for Acme Corp</SlackMessage>

<SlackMessage><AriMention /> which invoices for TechStart Inc are still unreconciled?</SlackMessage>

<SlackMessage><AriMention /> is invoice #INV-12345 paid?</SlackMessage>

<SlackMessage><AriMention /> show all payments reconciled this week</SlackMessage>

## Manual Reconciliation

Sometimes you need to manually match a payment to an invoice. This is common for unusual transactions or when automatic matching isn't confident.

<Steps>
  <Step title="Identify the issue">
    @Ari there's a payment that isn't matched
  </Step>

  <Step title="Provide details">
    Tell Ari the customer, amount, and invoice number (or description)
  </Step>

  <Step title="Confirm match">
    Ari shows the payment and invoice side-by-side
  </Step>

  <Step title="Approve match">
    Click **Approve** to mark them as matched
  </Step>
</Steps>

### Example Commands

<SlackMessage><AriMention /> match the {"$"}5,000 payment from Acme Corp on February 15 to invoice #INV-12340</SlackMessage>

<SlackMessage><AriMention /> reconcile payment of {"$"}3,200 from [jp.chen@techstart.com](mailto:jp.chen@techstart.com) to TechStart Inc's February invoice</SlackMessage>

<SlackMessage><AriMention /> apply the {"$"}2,000 payment from Global Systems LLC to their {"$"}4,500 invoice</SlackMessage>

## Handling Unmatched Payments

Payments that don't match any invoice are flagged for review.

<SlackMessage><AriMention /> show unmatched payments from the last 30 days</SlackMessage>

<SlackMessage><AriMention /> tell me about the {"$"}7,500 payment from ProjectCo on February 10</SlackMessage>

<Note>
  Unmatched payments might be advance payments, deposits, prepayments for upcoming invoices, or payment errors. Review them promptly to maintain accurate accounts.
</Note>

## Handling Payment Disputes

When a customer claims they've paid but reconciliation shows otherwise, investigate quickly.

<Steps>
  <Step title="Check customer claim">
    Ask the customer for payment date and method
  </Step>

  <Step title="Search for payment">
    @Ari search for \[customer]'s claimed payment
  </Step>

  <Step title="Verify receipt">
    Check Stripe transaction history for the payment
  </Step>

  <Step title="Reconcile or refund">
    If found, reconcile it. If not found, determine next steps with customer
  </Step>
</Steps>

<SlackMessage><AriMention /> search for a payment from Acme Corp around February 10 for about {"$"}5,000</SlackMessage>

<SlackMessage><AriMention /> was {"$"}8,300 received from TechStart Inc in February?</SlackMessage>

## Overdue Invoice Management

Reconciliation ties directly to collections. Invoices marked as paid are removed from overdue reports.

<SlackMessage><AriMention /> show all invoices that are overdue and not yet paid</SlackMessage>

<SlackMessage><AriMention /> what's outstanding from Acme Corp?</SlackMessage>

## Reconciliation Reports

Generate reconciliation summaries and reports for accounting and finance reviews.

<SlackMessage><AriMention /> show the reconciliation summary for February</SlackMessage>

<SlackMessage><AriMention /> reconciliation report by customer</SlackMessage>

<SlackMessage><AriMention /> show all reconciliation items that need review</SlackMessage>

<Note>
  These reports can be exported to CSV or PDF for your accounting team or auditors.
</Note>

## Currency and Multi-Payment Method

Handle reconciliation across different payment methods and currencies.

<AccordionGroup>
  <Accordion title="Multiple payment methods per invoice">
    If a customer pays partly with card and partly with ACH, Ari can match both payments to the invoice.
  </Accordion>

  <Accordion title="Currency conversion">
    For international payments, Ari uses Stripe's conversion rates to match payments in different currencies.
  </Accordion>

  <Accordion title="Payment fees">
    Ari accounts for payment processing fees when matching amounts.
  </Accordion>
</AccordionGroup>

## Audit Trail

Every reconciliation action is logged and can be reviewed for audit purposes.

<SlackMessage><AriMention /> show the reconciliation history for invoice #INV-12345</SlackMessage>

<SlackMessage><AriMention /> who matched this payment and when?</SlackMessage>

## Best Practices

* **Review daily**: Check Ari's reconciliation status daily to catch issues early
* **Investigate flagged items**: Don't leave ambiguous matches sitting—resolve them promptly
* **Confirm overpayments**: Contact customers about overpayments to clarify intentions
* **Match partial payments clearly**: Ensure partial payments are clearly allocated to specific invoices
* **Use invoice references**: Ask customers to include invoice numbers in payment memos for easier matching
* **Monthly close**: Reconcile all payments by the end of each month before closing your books
* **Audit regularly**: Spot-check reconciliation to ensure accuracy, especially for high-value invoices

## Integration with Other Features

Reconciliation works together with your full AR workflow:

* **Invoicing**: Invoice amounts and numbers are core to reconciliation
* **Collections**: Only unpaid invoices appear in collections reminders
* **Revenue Analytics**: Reconciliation status affects cash recognition and revenue reporting
* **Accounting**: Reconciled transactions feed into your financial statements
