Keep billing separate from the CRM. Your CRM owns the deal, its stage and the sales history. A billing system owns the quote, the invoice, the checkout, the payment plan and the record of every payment. Connect the two with API calls when a deal moves and webhooks when a customer acts. Then you can change the CRM again later without changing how customers pay.
In PaycovePaycove turns a deal in the CRM you built into a quote, an invoice or a payment plan with one API call, and tells your CRM by webhook when the customer pays. See it in 15 minutes →
Teams leave HubSpot or Pipedrive for a CRM of their own for good reasons: a pipeline that matches how they really sell, data they control, no per-seat bill. The deal board is the easy part to rebuild. Billing is where the project grows.
What does your current CRM do for billing?
More than most teams list before they start. Write down each of these as it works today:
- Which stage creates a quote or an invoice, and who presses the button.
- What moves a deal when the customer accepts.
- How deposits and payment plans are set up, and who changes one mid-way.
- Where sales looks to see that an invoice was paid.
- What finance gets, and what reaches the accounting system.
- Which automations fire from a deal's stage or its payment fields.
Each line is something the new system has to do, or something you decide to drop on purpose.
Which parts should your CRM own?
| Your CRM | Billing |
|---|---|
| The deal, its stage and its owner | The quote and invoice documents and their numbers |
| The contact and the sales history | The checkout, the saved card or bank account, the payment schedule |
| A copy of what's been paid, for sales to read | The record of every payment, refund and fee |
The dividing rule is simple. If an auditor or a customer could ask to see it, it belongs in billing. If only your sales team reads it, it belongs in the CRM.
What has to happen when a deal changes stage?
Two kinds of message travel between the systems. Your CRM calls the billing API when your team does something: create the quote, send it, mark it accepted. The billing system sends a webhook when something happens on its side: the customer accepted, a payment came in, the invoice was paid.
Build for both directions from the start. A board that only sends calls will show deals as unpaid long after the money arrives.
What about deposits and payment plans?
Decide where the schedule is set. If your CRM already knows the price and terms, it can send each payment's amount and date with the deal and get back one checkout link that takes the deposit and saves the payment method. If the customer should choose, send them to a checkout that offers more than one way to pay, such as in full or over time.
Either way, keep the schedule itself in billing. A schedule changes after it starts: a payment is moved, split or refunded. Your CRM should show the current balance, not try to own the plan.
What do teams miss when they move?
- Work in flight. Open quotes, unpaid invoices and running payment plans were created under the old CRM. Decide how each one finishes before you switch.
- Deal IDs. Keep a map from old IDs to new ones, and send your own ID with every new deal so both systems can find it.
- Repeated events. Write your webhook handler so that receiving the same event twice does no harm.
- Payments made by hand. A check marked as paid needs to reach the board the same way a card payment does.
- A dry run. Test the whole path, from a new deal to a second scheduled payment, with your own email addresses and small amounts before real customers see it.
Should you build the billing part too?
Build it if billing is what you sell, or if your terms are unusual enough that no product fits. Otherwise, count what comes after the first successful charge: changed schedules, partial refunds, surcharge rules that vary by state, sales tax, accounting sync and the email to a customer whose card expired. Your payment processor moves the money. Someone still has to build and maintain everything around it.
Paycove turns a deal in the CRM you built into a quote, an invoice or a payment plan with one API call, and tells your CRM by webhook when the customer pays.
Book 15 minutes