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

# Send Your First Invoice

> End-to-end walkthrough: connect Stripe, add a product, draft and send an invoice, watch the client pay through the portal

This guide walks through your very first invoice — from connecting a payment processor to seeing the invoice flip to paid. Plan for about 20 minutes the first time. After that, sending an invoice takes under 2 minutes.

<Info>
  Prerequisites: a Hiveku account with the Commerce module enabled and a Stripe account (free to create). If you'd rather use Authorize.Net, the steps are similar — see [Payments](/commerce/payments).
</Info>

## What you'll do

<Steps>
  <Step title="Connect Stripe as your payment processor">
    OAuth flow, takes 60 seconds.
  </Step>

  <Step title="Add a product or service to the catalog">
    The thing you're invoicing for.
  </Step>

  <Step title="Create the invoice with line items">
    Pick the client, add the product, set tax and terms.
  </Step>

  <Step title="Send to the client">
    They get an email with a portal link.
  </Step>

  <Step title="Watch them pay (or pay it yourself as a test)">
    The invoice auto-flips to paid via Stripe webhook.
  </Step>
</Steps>

## Step 1: Connect Stripe

<Steps>
  <Step title="Open Commerce settings">
    Go to `/dashboard/commerce/settings/`.
  </Step>

  <Step title="Click Connect Stripe">
    You're redirected to Stripe's OAuth page.
  </Step>

  <Step title="Sign in to Stripe and authorize">
    Pick the Stripe account you want to connect (test or live mode).
  </Step>

  <Step title="Confirm the connection">
    You're redirected back to Hiveku. The settings page should show "Stripe — Connected" with your account ID.
  </Step>
</Steps>

<Tip>
  Use **test mode** for your first invoice. You can run the entire flow without moving real money. Switch to live mode once you've verified everything works.
</Tip>

## Step 2: Add a product

You need at least one item to put on the invoice. Let's add a simple service.

<Steps>
  <Step title="Go to Products">
    Navigate to `/dashboard/commerce/products/`.
  </Step>

  <Step title="Click New Product">
    Top right of the products list.
  </Step>

  <Step title="Fill in the basics">
    * **Name**: "Strategy Consulting"
    * **Description**: "Two-hour strategy session with summary doc"
    * **Price**: `500` (in dollars; stored as cents internally)
    * **Recurrence**: One-time
    * **Taxable**: depends on your jurisdiction; check if your services are taxable
  </Step>

  <Step title="Save">
    The product is now available for line items.
  </Step>
</Steps>

For more on the catalog, see [Products & Services](/commerce/products).

## Step 3: Create the invoice

<Steps>
  <Step title="Go to Invoices">
    Navigate to `/dashboard/commerce/invoices/`.
  </Step>

  <Step title="Click New Invoice">
    A blank draft opens.
  </Step>

  <Step title="Pick the client">
    Search by name or company. If they're not in CRM yet, click **+ New Contact** and add them — at minimum a name and a billing email.
  </Step>

  <Step title="Add a line item">
    Click **+ Line Item**, search for "Strategy Consulting", select. The product's name, description, price, and tax flag pre-fill.
  </Step>

  <Step title="Set quantity">
    Default is 1. Change if you're billing multiple sessions.
  </Step>

  <Step title="Set payment terms">
    Net 15, Net 30, etc. Pick what your business uses. Net 30 is a common default.
  </Step>

  <Step title="Review the totals">
    Subtotal, tax, total. The PDF preview button shows you exactly what the client will see.
  </Step>
</Steps>

## Step 4: Send to the client

<Steps>
  <Step title="Click Send">
    Hiveku generates the PDF, attaches it to an email, and sends to the client's billing email with a portal link.
  </Step>

  <Step title="Confirm the send">
    A confirmation modal shows the recipient email. Double-check it's right (typos here are the #1 cause of "they didn't get my invoice"), then confirm.
  </Step>

  <Step title="Watch the status flip to Sent">
    The invoice's status badge updates immediately. The activity log shows the send timestamp and email ID.
  </Step>
</Steps>

## Step 5: Pay the test invoice

To verify the full flow works, pay the invoice yourself. In test mode, this doesn't move real money.

<Steps>
  <Step title="Open the invoice email">
    Check the inbox of the contact you used. The email has a "View Invoice" button.
  </Step>

  <Step title="Click the link">
    You land on the [client portal](/commerce/client-portal) showing the unpaid invoice.
  </Step>

  <Step title="Click Pay Now">
    The portal payment form appears.
  </Step>

  <Step title="Use a test card">
    `4242 4242 4242 4242`, any future expiry, any 3-digit CVC, any ZIP code. Submit.
  </Step>

  <Step title="See the success page">
    The portal flips to "Paid" and an emailed receipt is sent.
  </Step>

  <Step title="Check the invoice in Hiveku">
    Back at `/dashboard/commerce/invoices/`, the invoice's status should now be **Paid** (within seconds — Stripe webhooks fire fast).
  </Step>
</Steps>

## Verify it worked

The invoice's activity log should show:

* Created (draft)
* Sent — with email recipient and timestamp
* Email delivered — confirmation from your email provider
* Email opened — when the client viewed the email
* Portal viewed — when they clicked through to the portal
* Payment received — Stripe transaction ID and amount
* Marked paid — automatic on payment success

## Going live

When you're ready to send a real invoice for real money:

<Steps>
  <Step title="Switch Stripe to live mode">
    In `/dashboard/commerce/settings/`, disconnect the test connection and re-connect Stripe in live mode.
  </Step>

  <Step title="Re-create your product if needed">
    Test-mode products from Stripe don't carry over. Hiveku's products are fine, but if any references Stripe price IDs, regenerate them in live.
  </Step>

  <Step title="Send a small real invoice">
    Pick a friendly client or yourself. Real card, real money. Refund yourself afterward.
  </Step>
</Steps>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Stripe Connect fails with 'access denied'">
    Your Stripe account may be in a state that doesn't allow OAuth connections — restricted, under review, or with 2FA missing. Log into Stripe Dashboard and resolve any verification flags first, then retry the OAuth flow.
  </Accordion>

  <Accordion title="Invoice email didn't arrive">
    Check the invoice's activity log — if the email shows "delivered," it's in their inbox or spam. If it shows "bounced," the email address is wrong or doesn't exist. If it shows "send failed," your sending domain isn't fully verified — see [Email Domains](/email/domains).
  </Accordion>

  <Accordion title="Test card declined">
    Common causes: typo in the card number (use exactly `4242 4242 4242 4242`), expired test mode session, or the connection switched to live mode while you were testing. Re-check the connection mode in settings.
  </Accordion>

  <Accordion title="Payment went through but invoice still says Sent">
    The Stripe webhook didn't reach Hiveku. In `/dashboard/commerce/settings/`, click **Test Webhook** to verify the connection. If it fails, re-authorize Stripe. Once webhooks are healthy, manually mark the test invoice paid to keep your data clean.
  </Accordion>

  <Accordion title="Tax shows zero but I expected it to apply">
    Three checks: (1) the product's taxable flag, (2) the client's tax-exempt flag, (3) tax rates configured for the client's billing jurisdiction in settings. Edit the draft, fix what's missing, and re-send.
  </Accordion>
</AccordionGroup>

## What's next?

<CardGroup cols={2}>
  <Card title="Create and Send an Estimate" icon="file-signature" href="/how-tos/create-estimate">
    Quote work before you bill it.
  </Card>

  <Card title="Set Up Recurring Subscriptions" icon="repeat" href="/how-tos/setup-recurring-subscription">
    Bill retainers automatically each month.
  </Card>

  <Card title="Track AR Aging" icon="hourglass-half" href="/how-tos/track-ar-aging">
    Stay on top of overdue invoices.
  </Card>

  <Card title="Set Up the Client Portal" icon="user-tie" href="/how-tos/setup-client-portal">
    Brand the portal and add a custom domain.
  </Card>
</CardGroup>
