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

# Send & Manage Invoices

> Hand Ari your invoicing: creating, sending, tracking, and fixing invoices without leaving Slack.

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

Getting invoices out accurately and on time is the heartbeat of AR, and the first job
most teams hand to Ari. Describe the invoice in plain English; Ari drafts it against your
live Stripe and CRM data, shows you the plan, and creates it the moment you approve.

## What Ari does here

<CardGroup cols={2}>
  <Card title="Invoicing" icon="file-invoice-dollar" href="/ari/features/invoicing">
    Create one-time, multi-line, and recurring invoices. Send, track, draft, and void
    with approval protection.
  </Card>

  <Card title="Subscriptions" icon="rotate" href="/ari/features/subscriptions">
    Create, update, pause, resume, and cancel recurring billing, including schedules
    like trial-to-paid and planned price increases.
  </Card>

  <Card title="Customers" icon="users" href="/ari/features/customers">
    Look up, create, and update the customer records your invoices depend on, synced
    across Stripe, HubSpot, and Salesforce.
  </Card>

  <Card title="Email delivery" icon="envelope" href="/ari/integrations/email">
    Invoices go out from your company domain with professional templates, not a
    generic service address.
  </Card>
</CardGroup>

## Try it

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

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

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

<SlackMessage><AriMention /> create a subscription for TechStart Inc: Enterprise Plan at {"$"}15,000/year starting March 1</SlackMessage>

## What a real run looks like

<Steps>
  <Step title="Look up the customer">
    `@Ari can you look up customer details for Acme Corp?`

    Ari pulls the live record (Stripe customer ID, billing email, lifetime value, and
    the associated HubSpot deal) so you're invoicing the right entity with current info.
  </Step>

  <Step title="Ask for the invoice">
    `@Ari create an invoice for Acme Corp for $5,000 for monthly service`

    Ari posts a draft for approval: customer, amount, description, due date. Nothing
    exists in Stripe yet.
  </Step>

  <Step title="Approve">
    Click **Approve**. Ari creates the invoice and confirms with the invoice ID. If
    anything looks off, click **Edit** instead and tell Ari what to change.
  </Step>

  <Step title="Send it">
    `@Ari send the invoice to Acme Corp`

    Ari shows you the exact email (recipient, subject, body) before it goes out from
    your domain. Approve, and you get a delivery confirmation in the thread.
  </Step>
</Steps>

<Note>
  Every step that creates or sends something waits for your approval. Reading data
  (lookups, status checks, lists) is instant and never needs sign-off. See
  [Review plans and approvals](/ari/work-together/approvals).
</Note>

## Coach Ari on your defaults

Stop repeating yourself. Teach Ari your invoicing rules once with
[Instructions](/ari/work-together/instructions):

<SlackMessage><AriMention /> remember: our standard payment terms are net-30. For enterprise customers, use net-45.</SlackMessage>

<SlackMessage><AriMention /> remember: always include the PO number in the invoice memo when the customer has one on file.</SlackMessage>

## Powered by

[Stripe](/ari/integrations/stripe) and [Chargebee](/ari/integrations/chargebee)
(invoices and subscriptions) · [HubSpot](/ari/integrations/hubspot) /
[Salesforce](/ari/integrations/salesforce) (customer and deal data) ·
[Email](/ari/integrations/email) (delivery from your domain)
