Start with the recurring payment interval, then record the charge date, invoice due date and failed-payment retry timing separately.
Key takeaways
- Record the recurring payment interval, the specific charge date, the invoice due date, and the failed-payment retry timing as four separate entries.
- A name that communicates the service and interval, such as Nova Device Care Monthly, helps identify the plan, according to Frappe .
- Anchor the weekly charge to a specific day; a weekly subscription with a billing cycle anchor date of Friday, June 3 bills every Friday thereafter, according to Stripe .
- Distinguish the renewal collection from the invoice deadline.
- Track failed payments separately from successful ones. If a payment fails, PayPal retries the payment every 5 days, according to PayPal Developer . PayPal retries payments up to twice in a billing cycle and adds failed payments to the next billing cycle balance, according to PayPal Developer . Keep these four calendar entries distinct in your calendar to avoid mixing renewal tasks with payment terms.
Maintenance billing calendar: separate the dates first
A key feature of a subscription is a recurring payment—a payment due at a regular interval over time (ex. monthly), according to WooCommerce . Subscriptions perform several tasks as part of renewal, including generating an order to record payment, emailing both you and the customer by email of the renewal, and sometimes, processing the payment, according to WooCommerce . Automatic renewal – recurring payments process without customer intervention, according to WooCommerce . Record these distinct renewal tasks alongside your specific service interval to keep the billing calendar clear.
Pair that calendar with Recurring work order settings: 8 rules to set when the agreement also repeats the work.
Name the service interval and select the billed item
Start by defining the service interval and selecting the specific item and currency to bill. This first step establishes the foundation for your recurring charges. When you create a subscription plan, the name you choose should clearly communicate both the service provided and the billing interval. According to Frappe , use a name that communicates the service and interval, such as Nova Device Care Monthly. This naming convention helps distinguish different maintenance tiers within your portfolio.
After naming the plan, you must specify the financial details. According to Frappe , select the Currency and the Item being billed. This ensures the system knows exactly what is being charged and in which denomination. For a repair business, this item might be a specific equipment maintenance package or a labor bundle.
By following these two actions, you define the core elements of your billing calendar.
First, write a descriptive name for your maintenance agreement. Second, choose the currency in which you will bill. Third, identify the specific item that represents the maintenance service. These three inputs form the basis of your recurring charge. Without a clear name, customers may not understand what they are paying for. Without a defined item, there is no product to bill.
Set the recurring charge date and its time zone
Anchor the weekly charge to a specific day of the week. This anchor date establishes the recurring pattern for the maintenance agreement. If a month has less than 31 days, the subscription renews on the last day of that month, according to Stripe . This fallback rule handles shorter billing months without requiring manual date adjustments. Record the anchor timezone to avoid confusion between local and system times. For example, if you create a subscription using billing_cycle_anchor_config at 5 PM EST without specifying the hour, the time is recorded in the system as 10 PM UTC, according to Stripe . Note that this specific conversion applies to the EST to UTC example provided. Write down the anchor day, the last-day fallback rule, and the converted UTC time in your billing calendar.
Separate invoice deadlines from renewal collection
Payment terms define when the customer owes money after an invoice is issued, which is distinct from the recurring renewal task that triggers the next billing cycle. In the payment terms and installment plans — Odoo 18.0 documentation, the full payment is due 15 days after the invoice date according to Odoo . This specific term sets a fixed window from the invoice date rather than tying payment to the calendar month end.
Another option in the same documentation states that the full payment is due by the 21st of the month following the invoice date according to Odoo . This rule anchors the deadline to a specific day in the next month, creating a predictable cash flow date for the business.
The documentation also gives this example: the full payment is due at the end of the month following the invoice date according to Odoo .
When multiple terms exist on a single invoice, the system handles them by computing terms in the order of their due dates according to Odoo .
To set up your maintenance billing calendar, record the specific payment term chosen for each agreement. Note whether the deadline is fifteen days after the invoice, the twenty-first of the following month, or the end of the following month. Keep these invoice deadlines separate from the recurring charge date established in the previous step. The invoice due date tells you when to expect payment, while the renewal date tells you when to issue the next invoice. Do not assume that the invoice due date is the same as the date cash actually reaches your business, as the documentation defines the due date as the time the payment is owed, not the time it is received.
Read Maintenance billing dates: 5 mistakes to check first while you keep the invoice deadline off the charge date.
Billing calendar reference table and retry timing
The table below lists the documented billing settings for each publisher. Each row names the publisher and states the specific rule found in its source. Use this as your reference when recording the four calendar entries in your maintenance calendar.
| Publisher | Setting or Rule | Documented Detail |
|---|---|---|
| Frappe | Subscription Plan | Name communicates service and interval; select currency and item |
| Stripe | Billing Cycle | Weekly anchor; last-day fallback for short months; EST to UTC conversion |
| Odoo | Payment Terms | 15 days, 21st of next month, or end of the following month; computed in due-date order |
| WooCommerce | Renewal Process | Recurring payment at regular interval; automatic renewal without intervention |
| PayPal Developer | Payment Failure Retry | Retries every 5 days; up to twice in a cycle; failed amounts added to next balance |
The retry timing for failed payments is documented specifically in the "Payment failures and recovering balances" guide. According to PayPal Developer , if a payment fails, the system retries the payment every 5 days. This spacing applies to the specific subscription product described in that source.
The total number of attempts is also limited. According to PayPal Developer , the system retries payments up to twice in a billing cycle. If these attempts do not succeed, the failed amounts are added to the next billing cycle balance. This carryover rule means the unpaid amount does not disappear but is added to the next billing cycle balance.
Record these retry intervals in your calendar alongside the regular charge date. The 5-day spacing and the two-attempt cap define when the next billing event occurs after a failure. The carryover to the next cycle balance affects the total amount due at the next scheduled date. Keep these figures separate from the standard recurring charge date to track when cash is actually expected and when the system attempts collection.
Check your specific tool's documentation for its retry rules. The PayPal Developer facts apply to that specific product. Do not assume these 5-day intervals or two-attempt limits apply to other billing platforms. Record the documented retry timing for your chosen tool in the same calendar where you track the service interval and invoice due dates. This ensures you know when to expect a retry and how to track carryover into the next billing cycle balance.
Illustrative example of four calendar entries
Use round figures only to see the four entries on one row. The interval is monthly. The charge day is day 15. The invoice deadline is 15 days after the invoice date. A failed payment is checked again after 5 days, with 2 tries in that billing cycle. An illustrative unpaid amount of 80 is added to the next billing cycle balance. Nothing here names a tool or a customer. Put the monthly interval in the first spot, the charge day in the second spot, the invoice deadline in the third spot, and the retry timing in the fourth spot. The row still shows the interval, the charge day, the invoice deadline, and the retry timing as separate entries you can copy into a real agreement today. Read the row from left to right before you copy it onto the agreement you already have.
Keep a calendar of the selected billing settings
Take one existing maintenance agreement and record its interval, recurring charge day, invoice due-date rule and documented retry timing in a single calendar. The recurring interval is the core of the schedule. Write that interval in the first column of your calendar so every future charge anchors to the same rhythm.
Next, note whether the payment processes automatically. If your tool handles this step, mark the calendar entry as “automatic” so you do not manually trigger each cycle. If it does not, flag the date as a manual task and assign it to a specific person.
Keep the calendar separate from your general work order log. The interval and the automatic collection rule are distinct settings; one defines when the payment is due, and the other defines how it is collected. Recording both in the same row prevents confusion when a payment fails or a customer changes their plan.
See Partial billing: 8 rules for estimate approval if the agreement also needs an estimate check.
Related guides: Set 8 price book inputs across 4 apps for steady quotes .
FAQ: maintenance payment dates in your tool
How do I create a maintenance billing calendar?
Start by defining the recurring payment interval for the service. Then, record the specific charge date, the invoice due date, and the failed-payment retry timing as separate entries. This separation prevents the dates from being treated as a single payment event.
Does the last-day billing fallback apply to my Stripe monthly subscription?
Yes. A month with fewer than 31 days renews on the last day of that month, according to Stripe .
What is the difference between Odoo payment terms fifteen days after invoicing and the end of the following month?
Fifteen days counts from the invoice date, while the other deadline is the end of the following month, according to Odoo .
When does PayPal retry a failed subscription payment?
A failed payment is retried every 5 days, according to PayPal Developer .
Does WooCommerce automatic renewal require customer intervention?
No, automatic renewal processes recurring payments without customer intervention. This allows the billing cycle to continue without requiring the customer to take action for each payment.