Creating billing plans

Use the following endpoint to create a billing plan:

  • POST /admin/v1/billing-plans

Payment due intervals validation logic

Billing plans have a nonResponsivePmntDueInterval field. The value in this field must be greater than or equal to the sum of the values of the following fields:

  • changeDeadlineIntervalDayCount
  • draftIntervalDayCount
  • requestIntervalDayCount

For example, suppose you want to create a billing plan where the following fields are set to the following values:

  • changeDeadlineIntervalDayCount: 5
  • draftIntervalDayCount: 3
  • requestIntervalDayCount: 2

The sum of these values is 10. Therefore, the value of nonResponsivePmntDueInterval must be equal to or greater than 10. If it is not, BillingCenter returns a validation error and the billing plan is not created.

Minimum creation criteria

When you create a billing plan, you must specify the following values:

Field Value Comments
aggregation A value from the AggregationType typelist
allowModOfManDisb Boolean This field is not shown in the base configuration user interface.
availableDisbAmtType A value from the AvailableDistAmtType typelist
changeDeadlineIntervalDayCount integer See the previous section for additional validation logic tied to this field.
createApprActForAutoDisb Boolean
currencies Array of currency codes
delayDisbursement integer
draftDayLogic A value from the DayOfMonthLogic typelist
draftIntervalDayCount integer See the previous section for additional validation logic tied to this field.
effectiveDate datetime
leadTimeDayUnit A value from the DayUnit typelist
lowBalanceMethod A value from the LowBalanceMethod typelist
name string
nonResponsivePmntDueInterval integer See the previous section for additional validation logic tied to this field.
paymentDueDayLogic A value from the DayOfMonthLogic typelist
paymentDueInterval integer
requestIntervalDayCount integer See the previous section for additional validation logic tied to this field.
sendAutoDisbAwaitingApproval Boolean
skipInstallmentFees Boolean
statement A value from the StatementType typelist In the base configuration, this typelist has only one value: directbill.
suppressLowBalInvoices Boolean
westernMethod Boolean

Example of creating a billing plan

For example, the following creates a new billing plan:

Command
POST /admin/v1/billing-plans

Request payload

{
  "data": {
    "attributes": {
        "aggregation": {
          "code": "charges"
        },
        "allowModOfManDisb": false,
        "availableDisbAmtType": {
            "code": "unappliedminusbilled"
        },
        "changeDeadlineIntervalDayCount": 5,
        "createApprActForAutoDisb": true,
        "currencies": [
            {
                "code": "usd"
             }
        ],
        "delayDisbursement": 7,
        "draftDayLogic": {
            "code": "nextbusinessday"
        },
        "draftIntervalDayCount": 6,
        "effectiveDate": "2024-12-12",
        "leadTimeDayUnit": {
            "code": "business"
        },
        "lowBalanceMethod": {
            "code": "carryforward"
        },
        "name": "Cloud API Billing Plan",
        "nonResponsivePmntDueInterval": 7,
        "paymentDueDayLogic": {
            "code": "exact"
        },
        "paymentDueInterval": 7,
        "requestIntervalDayCount": 3,
        "sendAutoDisbAwaitingApproval": false,
        "skipInstallmentFees": true,
        "statement": {
            "code": "directbill"
        },
        "suppressLowBalInvoices": true,
        "westernMethod": true
    }
  }
}