Understanding Billing Options for Plan Templates/Plans - m3ter Documentation

Documentation Index

Fetch the complete documentation index at: /llms.txt

Use this file to discover all available pages before exploring further.

When you create and configure Plan Templates and Plans for your Products to prepare for setting up usage-based pricing to charge Accounts that consume your Products, several key billing options are available. These billing options are designed to give you maximum flexibility in controlling the way you want to Bill your customer Accounts. This topic explains in detail the key billing options available for Plan Templates/Plans:

Billing Currency, Pricing Currency, and Currency Conversions

You can select a billing currency at two levels:

However, when you create a Plan Template you must select a currency. Product Plans are always based on a Plan Template and inherit the currency setting of their template. When you price the Plan, this currency is used as the pricing currency.

Why might I want to use a billing currency that’s different to the pricing currency?

Suppose you have end-customer Accounts across many different countries. You might want to always price for product usage by any Account using the same pricing currency. However, you want to generate the Bills for each Account using the appropriate billing currency - the one used in the country where the end-customer lives. For an Account where the pricing currency does not match the required billing currency, billing charges are calculated using the pricing currency and then currency conversion rates are used to convert those charges into the appropriate billing currency amounts. This means you must ensure any required currency conversion rates have been set up for your Organization.

What does this mismatch between billing currency and pricing currency mean for Bills?

If you attach a Plan to an Account and the Plan uses a pricing currency that is different to the billing currency, when a Bill is generated for the Account the line items are first calculated using the Plan pricing currency and then the line item amounts are converted to the selected billing currency:

IMPORTANT! If you’re using different pricing and billing currencies and you haven’t defined a conversion rate in your Organization configuration for converting a Plan pricing currency into the selected billing currency, then Bill creation will fail and you’ll receive an error Alert.

Example Bill: Mixed Pricing Currencies vs. Billing Currency

Suppose you are a US based company offering a purified water supply, monitoring, and management service to dental practice groups worldwide. Your general pricing and billing policies are as follows:

Reviewing Example Bill in Console

For a monthly billing frequency, here’s an example of Bill generated in the m3ter Console under Bill management for a UK customer where the end-customers are charged in British Pounds (GBP) for the core water consumption product with a £5 monthly standing charge applied:

On review, we can see that the required mixed currency pricing has been accommodated:

Using API to Review Example Bill JSON

If we now use the GET Retrieve Bill API endpoint for this Bill’s id, we can review the response schema JSON to see how the mixed currencies pricing is handled:

{
    "id": "5226324a-dcfe-4ff4-a1b0-98766f38ad7d",
    "version": 3,
    "accountId": "32728b36-5822-4568-8731-951762593b3c",
    "accountCode": "water_gen_customer_uk",
    "startDate": "2026-05-01",
    "endDate": "2026-06-01",
    "startDateTimeUTC": "2026-05-01T00:00:00.000Z",
    "endDateTimeUTC": "2026-06-01T00:00:00.000Z",
    "billDate": "2026-06-01",
    "dueDate": "2026-06-08",
    "billingFrequency": "MONTHLY",
    "billFrequencyInterval": 1,
    "timezone": "UTC",
    "currency": "USD",
    "locked": false,
    "createdDate": "2026-06-11T15:31:24.663Z",
    "status": "PENDING",
    "billJobId": "ba5f053e-0f5d-4b08-bf9b-a3cdf5f46e4a",
    "currencyConversions": [
        {
            "from": "GBP",
            "to": "USD",
            "multiplier": 1.5
        },
        {
            "from": "APC",
            "to": "USD",
            "multiplier": 0.5
        },
        {
            "from": "USD",
            "to": "APC",
            "multiplier": 2.0
        },
        {
            "from": "CAD",
            "to": "USD",
            "multiplier": 0.75
        }
    ],
}

In the response, the Bill’s line items are returned in an array:

"lineItems": [...],
{
            "id": "c36960e1-a52f-488b-9ec5-821da30e4949",
            "productId": "773d030e-61c5-4e95-9cb7-a5414ae8bdda",
            "productName": "WaterGen Standard",
            "productCode": "water_gen_standard",
            "accountingProductId": "",
            "accountingProductName": "",
            "accountingProductCode": "",
            "aggregationId": "e0ff067a-6407-4ffd-bfb4-a1bf8250d221",
            "compoundAggregationId": "",
            "group": {},
            "meterId": "6ee668bd-cc89-41d0-b313-8a7aaedadeee",
            "planId": "607cf3ec-eee6-43fd-aa0f-d1da8679a5f6",
            "planGroupId": "",
            "description": "Water Usage Charges",
            "quantity": 1000,
            "units": 1000,
            "unit": "Liters",
            "subtotal": 1000,
            "currency": "GBP",
            "conversionRate": 1.5,
            "convertedSubtotal": 1500,
            "lineItemType": "USAGE",
            "pricingId": "90aac9f0-f336-43f9-a755-dae429f84734",
            "childAccountId": "",
            "childAccountCode": "",
            "usagePerPricingBand": [
                {
                    "pricingBandId": "fb8a56c8-8b54-484d-ae00-61920185a323",
                    "lowerLimit": 0.0,
                    "fixedPrice": 0,
                    "unitSubtotal": 1000,
                    "unitPrice": 1,
                    "bandUnits": 1000,
                    "bandQuantity": 1000,
                    "bandSubtotal": 1000,
                    "convertedBandSubtotal": 1500
                }
            ],
            "servicePeriodStartDate": "2026-05-01T00:00:00.000Z",
            "servicePeriodEndDate": "2026-06-01T00:00:00.000Z",
            "averageUnitPrice": 1,
            "sequenceNumber": 3
        }
{
            "id": "9346e0f1-4d8a-4ca5-b8fd-fe7660e3a896",
            "productId": "773d030e-61c5-4e95-9cb7-a5414ae8bdda",
            "productName": "WaterGen Standard",
            "productCode": "water_gen_standard",
            "accountingProductId": "",
            "accountingProductName": "",
            "accountingProductCode": "",
            "aggregationId": "",
            "compoundAggregationId": "",
            "meterId": "",
            "planId": "607cf3ec-eee6-43fd-aa0f-d1da8679a5f6",
            "planGroupId": "",
            "description": "Water Usage Charges",
            "quantity": 1,
            "units": 1,
            "unit": "",
            "subtotal": 5,
            "currency": "GBP",
            "conversionRate": 1.5,
            "convertedSubtotal": 7.5,
            "lineItemType": "STANDING_CHARGE",
            "pricingId": "",
            "childAccountId": "",
            "childAccountCode": "",
            "servicePeriodStartDate": "2026-05-01T00:00:00.000Z",
            "servicePeriodEndDate": "2026-06-01T00:00:00.000Z",
            "averageUnitPrice": 5,
            "sequenceNumber": 1
        }
{
            "id": "72543f02-9b3d-4eb2-8043-de827543e3de",
            "productId": "88a719a7-f90d-4074-9e13-e3dfb2d36a11",
            "productName": "WaterGen Support",
            "productCode": "water_gen_support",
            "accountingProductId": "",
            "accountingProductName": "",
            "accountingProductCode": "",
            "aggregationId": "82fc80f2-a9bd-4dfc-ad0f-8a30e60627e5",
            "compoundAggregationId": "",
            "group": {},
            "meterId": "96bd030b-0523-4ae7-b6bc-32bf514e9c36",
            "planId": "dbd987c3-1333-4441-8fba-d2be86e8770d",
            "planGroupId": "",
            "description": "Support Charges",
            "quantity": 1100,
            "units": 1100,
            "unit": "Calls",
            "subtotal": 550,
            "currency": "USD",
            "conversionRate": 1,
            "convertedSubtotal": 550,
            "lineItemType": "USAGE",
            "pricingId": "cd02b224-74b4-4a5f-b2bc-5973e242f5e7",
            "childAccountId": "",
            "childAccountCode": "",
            "usagePerPricingBand": [
                {
                    "pricingBandId": "f161c79c-6800-46c6-9dca-d866831d7e04",
                    "lowerLimit": 0.0,
                    "fixedPrice": 0,
                    "unitSubtotal": 550,
                    "unitPrice": 0.5,
                    "bandUnits": 1100,
                    "bandQuantity": 1100,
                    "bandSubtotal": 550,
                    "convertedBandSubtotal": 550
                }
            ],
            "servicePeriodStartDate": "2026-05-01T00:00:00.000Z",
            "servicePeriodEndDate": "2026-06-01T00:00:00.000Z",
            "averageUnitPrice": 0.5,
            "sequenceNumber": 2
        }

What if I want to use a different billing currency for some of my Accounts and outside of the scheduled billing runs?

You can do this by creating a Bill Job, where you can specify:

You can use the Create a new Bill Job API call to do this. See the Bill Job section in our API Reference Docs for other calls you can use to create and manage Bill Jobs.

Standing Charge

What is a Billing Standing Charge?

A Standing Charge allows you to set a fixed amount that is charged on Account Bills:

How is the Standing Charge applied for a Plan Group?

If you define a Standing Charge for a Plan Group, which doesn’t have a well-defined billing cycle because the Plans it contains might have different billing dates or frequencies, then if any of the Plans in the Group should be included in the billing run, then the Plan Group Standing Charge amount is included.

Can I control which Bills the Standing Charge is applied to?

Yes. If you don’t want the Standing charge to be applied to every Bill in a series, you can use the settings for Standing charge interval and Standing charge offset to control which Bills in a series of Bills the Standing Charge is applied to:

Minimum Spend

A Minimum Spend allows you to define a minimum amount that your customer has agreed to spend for usage charges on each Bill they receive.

Important! Minimum Spend excludes any charges due at billing for Standing Charges or Prepayment/Commitment fees.

You can define a Minimum Spend at three levels:

The way in which the Minimum Spend amount is assessed differs at the three levels:

For example, you might have a single priced Plan on an Account:

Tip: Minimum Spend with Parent/Child Accounts? Note that a Minimum Spend amount is for the Product as a whole for an end customer Account that consumes the Product. If the customer Account has Child Accounts which have different pricing Plans attached, the Minimum Spend amount you enter for the Parent Account pricing Plan is reckoned at billing against the total usage charges due - for both Child and Parent. For more on billing for Parent/Child Accounts, see Billing Hierarchy Modes for Parent/Child Accounts.

What if I’ve chosen to bill Minimum Spend in advance? How does Minimum Spend work in this case?

When billing in arrears, Minimum Spend constraints can be assessed against usage charges that are known at the time of Bill calculation. When billing in advance, the method for applying a Minimum Spend is as follows:

Minimum Spend Billed in Advance - Example

Here’s a worked example to show how billing works when minimum spend is billed in advance: