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:
changeDeadlineIntervalDayCountdraftIntervalDayCountrequestIntervalDayCount
For example, suppose you want to create a billing plan where the following fields are set to the following values:
changeDeadlineIntervalDayCount: 5draftIntervalDayCount: 3requestIntervalDayCount: 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:
POST /admin/v1/billing-plansRequest 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
}
}
}