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

# Invoicing

> Create, send, and manage invoices directly from Slack with Ari

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

Ari streamlines invoice management by letting you create, send, and track invoices without leaving Slack. Whether you need one-time invoices or recurring billing, Ari handles the heavy lifting with a built-in approval workflow to ensure accuracy.

## Creating Invoices

You can create invoices quickly by providing customer details, line items, and dates. Ari integrates with Stripe and HubSpot to pull customer information automatically.

<Steps>
  <Step title="Start with a mention">
    @Ari in any Slack channel and describe what you need. Ari understands natural language requests.
  </Step>

  <Step title="Provide invoice details">
    Include the customer name, amount, description, and any line items. You can add multiple line items for detailed invoices.
  </Step>

  <Step title="Review and approve">
    Ari generates a preview with all details. Click the **Approve** button to create the invoice in your system.
  </Step>

  <Step title="Track in Stripe/HubSpot">
    The invoice appears in your connected systems immediately and is ready to send to the customer.
  </Step>
</Steps>

### Example Commands

<SlackMessage><AriMention /> create an invoice for Acme Corp for {"$"}5,000 for January consulting</SlackMessage>

<SlackMessage><AriMention /> create an invoice for TechStart Inc with: - Development services: {"$"}3,500 - Design work: {"$"}1,200 - Support hours: {"$"}800 Due date: February 28, 2024</SlackMessage>

<SlackMessage><AriMention /> set up a monthly invoice for Global Systems LLC for {"$"}2,500 starting next month</SlackMessage>

## Sending Invoices

Once an invoice is created, you can send it directly to customers from Slack.

<Note>
  Ari uses the billing email address from your customer record in Stripe or HubSpot. Make sure these are up to date for smooth delivery.
</Note>

### Sending Steps

<Steps>
  <Step title="Request to send">
    @Ari send invoice #INV-12345 to the customer
  </Step>

  <Step title="Confirm recipient">
    Ari shows the customer's email address. Verify it's correct before approving.
  </Step>

  <Step title="Approve and send">
    Click **Approve** to send the invoice immediately.
  </Step>

  <Step title="Get confirmation">
    Ari confirms delivery and logs the action in Slack.
  </Step>
</Steps>

### Example Commands

<SlackMessage><AriMention /> send invoice #INV-12345 to Acme Corp</SlackMessage>

<SlackMessage><AriMention /> send invoice #INV-12346 with a note: "Thank you for your business. Payment is due by March 15."</SlackMessage>

## Managing Draft Invoices

Drafts let you prepare invoices without finalizing them. You can edit, review, and send later.

<Tip>
  Draft invoices don't appear on your customer's account until you finalize them. Use drafts when you're still negotiating terms or waiting for approvals internally.
</Tip>

<SlackMessage><AriMention /> create a draft invoice for ProjectCo for {"$"}7,500</SlackMessage>

<SlackMessage><AriMention /> view my draft invoices</SlackMessage>

<SlackMessage><AriMention /> finalize draft invoice #DRAFT-5</SlackMessage>

## Voiding Invoices

If you need to cancel an invoice, Ari handles the voiding process with approval protection.

<Warning>
  Voiding an invoice is a permanent action. If you've already received payment, consider creating a credit memo instead.
</Warning>

<Steps>
  <Step title="Request void">
    @Ari void invoice #INV-12340
  </Step>

  <Step title="Confirm reason">
    Ari asks why you're voiding (incorrect amount, duplicate, billing error, etc.).
  </Step>

  <Step title="Approve void">
    Review the details and click **Approve** to void the invoice.
  </Step>

  <Step title="Log entry">
    The void is recorded and Ari confirms the action.
  </Step>
</Steps>

<SlackMessage><AriMention /> void invoice #INV-12340 because of duplicate billing</SlackMessage>

## Invoice Status Tracking

Check the status of any invoice at any time.

<SlackMessage><AriMention /> what's the status of invoice #INV-12345?</SlackMessage>

<SlackMessage><AriMention /> show me invoices created in February</SlackMessage>

<SlackMessage><AriMention /> show all invoices for Acme Corp</SlackMessage>

## Approval Flow

All invoice creation and modification actions require approval before they take effect.

<AccordionGroup>
  <Accordion title="Why approval is required">
    The approval-first model ensures financial accuracy and prevents accidental mistakes. Only approved actions are reflected in Stripe or HubSpot.
  </Accordion>

  <Accordion title="Who can approve?">
    Team members with finance or admin permissions can approve invoice actions. This can be configured in your workspace settings.
  </Accordion>

  <Accordion title="What happens if I reject?">
    If you click **Reject**, the action is canceled and no changes are made to your system. You can modify your request and try again.
  </Accordion>
</AccordionGroup>

## Best Practices

* **Use clear descriptions**: The more detail you provide about the invoice, the faster Ari can create it.
* **Verify customer information**: Ensure billing emails and addresses are current in Stripe or HubSpot.
* **Set due dates**: Always include a due date to avoid payment delays.
* **Check drafts regularly**: Review draft invoices weekly to catch any pending items.
* **Use line items**: Breaking down charges helps customers understand what they're paying for.
