Member Management with Odoo

Billing & Invoices

Requires: MA Memberships - Contract Billing module (and OCA Contract, installed by your administrator).

This module connects membership agreements to Odoo's contract billing engine for recurring monthly tuition and one-time enrollment fees.

How billing works

Each billable agreement gets a billing contract linked to the agreement. The contract contains:

Line type

What it bills

When

Monthly Tuition

Recurring tuition per enrollment (after discounts)

Every billing day

One-time Fees

Enrollment/initiation fees and prorated tuition

At signing

The billing contact on the agreement is the invoice recipient. Payment terms default to Immediate Payment.


Enabling billing on an agreement

  1. Open a Draft agreement with enrollments added

  2. Check Enable Billing

  3. A draft billing contract is created automatically from the enrollments

  4. Open the Billing tab to review and adjust

Complimentary agreements: Billing is not available when Complimentary ($0) is checked.


Billing tab

Agreement → Billing tab

Settings

Field

Description

Billing Day

Day of the month recurring invoices are generated (from your allowed invoice days in Settings)

Next Billing Date

Calculated next invoice date

Proration Days

Days from today until first billing date (if proration applies)

Do Not Prorate

Skip the one-time prorated tuition charge (e.g. to waive partial-month fees)

image-20260720-134822.png

Contract lines

Two editable tables appear while billing is still in Draft:

Monthly Tuition - one recurring line per enrollment:

  • Product, description, price, discount

  • Next invoice date

One-time Fees - enrollment fees and proration:

  • Enrollment/initiation fee per student

  • Prorated tuition from signing date to first billing date (unless proration is skipped)

image-20260720-134909.png

While in draft, you can adjust prices, billing day, and proration. Once the agreement is signed, billing is confirmed and prices are locked.


Billing timeline

Draft agreement
    ↓ Enable Billing
Draft contract created (editable)
    ↓ Review/adjust Billing tab
Sign Agreement
    ↓
Billing confirmed → enrollment fees + proration invoiced immediately
    ↓
Monthly tuition invoiced on each Billing Day (automatic)

There is no separate "Confirm Billing" button - signing the agreement confirms billing.


Proration explained

When a member starts mid-cycle (between billing days), a prorated tuition one-time fee covers the partial period from the start/signing date until the first full billing date.

Example: Billing day is the 15th. Member signs on March 3. Proration covers March 3–14; first full monthly invoice runs March 15.

Check Do Not Prorate on the agreement to skip this charge entirely.


After signing

Once signed:

  • Billing status changes from Draft to confirmed

  • One-time fees and proration are invoiced immediately

  • Monthly tuition lines invoice automatically on each billing day

  • Prices on contract lines are read-only

  • Use the Contract and Invoices smart buttons on the agreement to view details

Viewing invoices

Click the Invoices smart button on the agreement header, or open the linked contract and review invoice history.

image-20260720-135031.png

Cancelling billing

When you Cancel an agreement:

  • The linked billing contract is stopped

  • No further recurring invoices are generated

  • Existing open invoices remain for collection or write-off


Monthly invoice generation

Recurring invoices are created automatically by Odoo's contract scheduler (typically runs once daily). Your administrator configures the exact schedule.

Each billing day, the system:

  1. Creates invoices for all active contracts due that day

  2. Posts the invoices to accounting

  3. If Payroc is installed and a card is on file, charges the invoice automatically


Editing prices before signing

To change tuition or fees:

  1. Ensure the agreement is still Draft and billing is not yet confirmed

  2. Edit enrollment prices on the Enrollments tab, or edit contract lines directly on the Billing tab

After signing, price changes require cancelling the agreement or creating an amendment process outside the standard flow.


Common scenarios

Scenario

What to do

Family discount on one student

Set Discount (%) on the enrollment, or edit the contract line price on Billing tab

Waive enrollment fee

Set enrollment fee to $0 on enrollment or delete the one-time fee line

Waive proration

Check Do Not Prorate before signing

Different billing days per family

Set Billing Day on each agreement individually

Free membership

Check Complimentary ($0) - no contract is created