<!-- Source: https://docs.vinsi.ai/crm/admin/invoice-settings -->
# Invoice Settings

Manage invoice company profile and payment collection.

Created April 1, 2026

Updated: September 17, 2026

## Overview

The **Invoice Settings** section of [CRM Admin](https://docs.vinsi.ai/crm/admin) holds two cards. Together they answer two questions for every invoice you send: _who is this invoice from_, and _how does the customer pay it_.

- **Invoice Settings** — _Save company information and connect Stripe for CRM invoice payments._ Your company name, contact details, and billing addresses.
- **Stripe Connect** — _Connect your Stripe account to process payments._ The Stripe keys VINSI uses to take card payments on your behalf.

Both cards open in a slide-up panel over the admin grid; close either with the round **X**. Each card shows a small badge counting what you have set up — one point for company information, one for a working Stripe connection. You can jump straight to the first card with `/crm/admin?panel=invoice-settings`.

Set these up **before** you raise your first invoice. Company details are copied onto an invoice when it is created, so filling them in later will not fix invoices you have already made.

## Who Can Use These Cards

Organization admins and owners always have access. Everyone else needs the **Invoice Settings** permission, granted per member in [Team Settings → CRM Team](https://docs.vinsi.ai/crm/admin/team-settings). One permission covers both cards.

| Permission               | What it allows                                                                                                                                                                          |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Invoice Settings — Read  | See the section and open both panels. Values are visible but nothing can be changed.                                                                                                    |
| Invoice Settings — Write | Use **Save** on the company profile, **Add Address** and the per-address edit, delete and set-primary buttons, and both **Save Credentials** and **Test Connection** on Stripe Connect. |

**Gotcha.** A rep without at least read access can still create invoices — their invoices simply open with the company block blank, and they have to type your company details by hand. If your team keeps producing invoices with a missing sender address, check this permission first.

### Invoice Settings

This card holds one company profile for your whole organization. As the panel puts it, _this profile is used as the sender information on CRM invoices_ — it fills in the "from" block on new invoices and the footer of every invoice email you send. It is split into **Company Information** and **Addresses**.

### Company Information

1. Open **CRM → Admin → Invoice Settings**.
2. Fill in the five fields under **Company Information**.
3. Click **Save** at the bottom of the panel. You'll see **Invoice settings saved**.

| Field        | Example              | Details                                                                                                                                    |
| ------------ | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| Company Name | Acme Corp            | Your trading name. This is what appears on the invoice and in the invoice email footer.                                                    |
| Legal Name   | Acme Corporation LLC | Recorded for your own reference. It is not printed on the invoice.                                                                         |
| Website      | https://company.com  | Shown as a link in the invoice email footer.                                                                                               |
| Phone        | +1 (555) 123-4567    | Formats itself as a US number while you type. Must be at least 10 digits or you'll see **Invalid phone number**. Copied onto new invoices. |
| Email        | billing@company.com  | Your billing address for replies. Invalid entries show **Invalid email address**. Copied onto new invoices.                                |

None of the fields are compulsory — you can save a partial profile and come back. Both validation messages appear when you click out of the field, and the **Save** button stays disabled while the phone number is invalid.

**What this card does not do.** There is no logo upload, invoice numbering or prefix, default payment terms, tax rate, or footer text here. The logo is set per invoice in the invoice builder, and numbering, terms, tax and notes are all set on the invoice itself — see [CRM Invoices](https://docs.vinsi.ai/crm/invoices).

### Addresses

_Used on invoices sent from this profile._ Store up to three addresses and mark one as primary — the primary address is the one that goes on invoices.

1. Click **\+ Add Address**. The button is hidden once you have three addresses, or while another address is open for editing.
2. Pick an **Address Type** and, if this should be the one used on invoices, tick **Set as Primary**. The first address you add is marked primary automatically.
3. Start typing in **Address Line 1**. When address lookup is available the label shows a _Start typing to search_ hint — choose a suggestion and the city, state, postal code and country fill themselves in.
4. Complete anything the lookup missed, then click **Save Address**. You'll see **Address added** or **Address updated**.

| Field                      | Options and defaults                                                                                        |
| -------------------------- | ----------------------------------------------------------------------------------------------------------- |
| Address Type               | **Office** (default), PO Box, Billing, Headquarters, Other. Headquarters shows as **HQ** on the saved card. |
| Set as Primary             | Ticked automatically for your first address. Only one address can be primary at a time.                     |
| Address Line 1             | Free text, e.g. _123 Main Street_. Supports address lookup.                                                 |
| Address Line 2             | Free text, e.g. _Suite 200_.                                                                                |
| City / State / Postal Code | Free text, e.g. _Miami_ / _FL_ / _33101_.                                                                   |
| Country                    | Two-letter country code, forced to upper case. Defaults to **US**.                                          |
| Maximum addresses          | 3.                                                                                                          |

Each saved address shows its type badge, a green **Primary** badge where it applies, and three buttons:

| Button | What it does                                                                                     |
| ------ | ------------------------------------------------------------------------------------------------ |
| Star   | _Set as primary._ Shown only on non-primary addresses. Applies immediately with no confirmation. |
| Pencil | Opens the address for editing in place.                                                          |
| Trash  | Deletes the address. Reports **Address removed**.                                                |

**Gotchas.** Deleting an address happens straight away — there is no confirmation dialog, and no undo. Deleting your primary address silently promotes the next one, so check which address is marked Primary afterwards. While an address form is open the main **Save** button disappears; finish or cancel the address first. Country must be a two-letter code — anything else is replaced with **US** when saved.

### Stripe Connect

Connect the Stripe account that should receive payments for your CRM invoices. Once connected, invoice emails carry a **View and pay** button that takes your customer to a Stripe checkout page, and the payment is recorded back against the invoice automatically. Without it, invoices still send — they just have no pay button.

You connect by pasting keys from your own Stripe dashboard. As the panel explains: _Store Stripe credentials per organization. Secret and webhook signing secrets are encrypted at rest and never returned raw to the browser._

**Keys are credentials — treat them like passwords.** Create them yourself inside your Stripe dashboard and paste them in here. Never email them, never paste them into a chat, and never give them to anyone who asks for them outside of this screen.

### Connect Your Stripe Account

1. Open **CRM → Admin → Stripe Connect**.
2. Choose **Test mode** or **Live mode** at the top. The panel opens on **Test mode**.
3. Copy the **Webhook Endpoint** shown in the panel — it is read-only — and add it as a webhook destination in your Stripe dashboard.
4. Back in VINSI, paste the **Publishable Key**, the **Secret / Restricted Key**, and the **Webhook Signing Secret** that Stripe gave you for that webhook.
5. Click **Save Credentials**. You'll see **Stripe credentials saved**.
6. Click **Test Connection**. A working connection reports **Stripe connection is valid** and fills in the **Stripe Account** and **Last Tested** lines. Check the status pill reads **Valid** before you rely on it.
7. Repeat for the other mode when you are ready to go live.

| Field                   | Looks like                | Details                                                                                             |
| ----------------------- | ------------------------- | --------------------------------------------------------------------------------------------------- |
| Publishable Key         | pk\_test\_… / pk\_live\_… | Stripe's public key. Safe to display.                                                               |
| Secret / Restricted Key | rk\_test\_… / sk\_live\_… | Hidden as you type and never shown back to you. Prefer a **restricted** key over a full secret key. |
| Webhook Signing Secret  | whsec\_…                  | Hidden as you type. Lets VINSI verify that payment notifications really came from Stripe.           |
| Webhook Endpoint        | Your VINSI webhook URL    | Read-only. Copy this into Stripe — you cannot change it here.                                       |

**Leave a field blank to keep the value you already saved.** That is the intended way to update just one key — for example rotating only the secret key. Clearing a box does not erase the stored value.

### Connection Status

The **Connection Status** box reports the state of the mode you are currently viewing.

| Status         | Meaning                                                              | What to do                                  |
| -------------- | -------------------------------------------------------------------- | ------------------------------------------- |
| Not configured | No keys have been saved for this mode.                               | Paste your keys and save.                   |
| Pending test   | Keys are saved but have never been checked against Stripe.           | Click **Test Connection**.                  |
| Valid          | VINSI reached your Stripe account successfully.                      | Nothing — you are connected.                |
| Invalid        | The last test failed. The reason appears on the **Last Error** line. | Re-copy the key from Stripe and test again. |

The box also lists:

| Line                                                       | Shows                                                                   |
| ---------------------------------------------------------- | ----------------------------------------------------------------------- |
| Mode                                                       | Which mode you are looking at.                                          |
| Publishable Key / Secret / Restricted Key / Webhook Secret | A masked version of what is stored, or **Not saved**.                   |
| Key Type                                                   | Whether the saved key is a restricted or a full secret key.             |
| Stripe Account                                             | The Stripe account VINSI reached. Appears only after a successful test. |
| Last Tested                                                | Date and time of the most recent test.                                  |
| Last Error                                                 | In red, the reason the last test failed.                                |

### Test Mode vs Live Mode

Each mode stores its own set of keys and its own status. **Test mode** uses Stripe's test keys and moves no real money — use it to check the customer's experience end to end. **Live mode** takes real card payments.

**Gotchas.** Switching between Test and Live clears whatever you have typed into the three key boxes — save before you switch. When both modes hold keys, VINSI uses **Live** for invoice payment links, so leaving stale live keys in place will send real customers to the wrong account. There is no **Disconnect** button in this panel: to stop taking payments, revoke or roll the key inside your Stripe dashboard, which makes the connection test fail and removes the pay button from future invoice emails.

## How This Shows Up on Invoices

Everything on this page feeds [CRM → Invoices](https://docs.vinsi.ai/crm/invoices). Here is exactly where each piece lands.

| Setting           | Where it appears                                                                                                                        |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| Company Name      | Pre-fills **Organization Name** on a new invoice, and is the company name in the invoice email footer and subject line.                 |
| Phone             | Pre-fills **Org Phone** on a new invoice, and appears in the email footer.                                                              |
| Email             | Pre-fills **Org Email** on a new invoice, and appears as a contact link in the email footer.                                            |
| Primary address   | Pre-fills **Org Street**, **Org City**, **Org State** and **Org Postal Code** on a new invoice, and is the address in the email footer. |
| Website           | Appears as a link in the invoice email footer only — it is not printed on the invoice document.                                         |
| Legal Name        | Stored for reference. It is not used on the invoice or in the email.                                                                    |
| Stripe connection | Adds a **View and pay** button and a row of accepted payment methods to the invoice email.                                              |
| Organization logo | Comes from your organization profile and the invoice builder, not from this page.                                                       |

**Sending an invoice for payment**

1. Create the invoice in [CRM → Invoices](https://docs.vinsi.ai/crm/invoices). The company block is pre-filled from this page; you can still override it per invoice.
2. Open the invoice and choose **Send Email**, optionally attaching the PDF.
3. If Stripe is connected and the invoice still has a balance, the email includes a **View and pay** button that opens a Stripe checkout page, plus a row showing the accepted methods (Apple Pay, VISA, Mastercard, Discover, AMEX, Bank).
4. When the customer pays, the invoice is updated automatically — it becomes **Paid**, or **Partial** if a balance remains.

**Gotchas.** Company details are copied onto the invoice the moment it is created, so changing them here never updates an existing invoice — edit that invoice directly. Duplicated invoices reuse the original's company block rather than re-reading this page. If Stripe is not connected, or the keys are wrong, the invoice email still sends but silently arrives with no pay button at all — so confirm the status pill reads **Valid** before your first real send. Quotes and already-paid invoices never get a pay button by design.
