Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Billing Management Preferences API
version: 1.0.0
description: The Billing Preference Controller
servers:
- url: https://rls.congacloud.com/api/billing/v1
security:
- Bearer: []
tags:
- name: Preferences
description: The Billing Preference Controller
paths:
/preferences:
get:
tags:
- Preferences
summary: List preference records
description: 'Retrieves the collection of preference records.
To access Billing Preference History records, ensure the "includes" parameter is set to "history".'
parameters:
- name: filter
in: query
description: Optional filter parameters
schema:
type: array
items:
type: string
- name: sort
in: query
description: Optional sort parameter
schema:
type: string
- name: page
in: query
description: Page number
schema:
type: integer
format: int32
default: 1
- name: limit
in: query
description: Number of items per page
schema:
type: integer
format: int32
default: 50
- name: includes
in: query
description: Optional related entities to include
schema:
type: array
items:
type: string
- name: fields
in: query
description: Optional name of the fields to include
schema:
type: array
items:
type: string
- name: filterExpression
in: query
description: Optional filter expression
schema:
type: string
responses:
'200':
description: OK
content:
text/plain:
schema:
type: array
items:
$ref: '#/components/schemas/BillingPreference'
example:
- Active: true
Default: true
BillingCycleStart: Billing Day of Month
BillingDayOfMonth: 1st of the Month
BillingDayOfWeek: Monday
CalendarCycleStart: January
ProrationComputationMethod: Calendar Days of First Month
ProrateWhenBilledAsOneTime: true
SplitDistributionMethod: Defer to the last schedule
EvergreenBillingScheduleRecordsCreationOption: Ahead of time
CreateBillingForInformationalProducts: 'Yes'
SyncBillingInfoDuringAmendment: true
Id: BillingPreferenceIdToUpdate
Name: Updated Billing Preference Name
CreatedBy: null
CreatedDate: '0001-01-01T00:00:00'
ModifiedBy: null
ModifiedDate: '0001-01-01T00:00:00'
ExternalId: null
ETag: null
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BillingPreference'
example:
- Active: true
Default: true
BillingCycleStart: Billing Day of Month
BillingDayOfMonth: 1st of the Month
BillingDayOfWeek: Monday
CalendarCycleStart: January
ProrationComputationMethod: Calendar Days of First Month
ProrateWhenBilledAsOneTime: true
SplitDistributionMethod: Defer to the last schedule
EvergreenBillingScheduleRecordsCreationOption: Ahead of time
CreateBillingForInformationalProducts: 'Yes'
SyncBillingInfoDuringAmendment: true
Id: BillingPreferenceIdToUpdate
Name: Updated Billing Preference Name
CreatedBy: null
CreatedDate: '0001-01-01T00:00:00'
ModifiedBy: null
ModifiedDate: '0001-01-01T00:00:00'
ExternalId: null
ETag: null
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/BillingPreference'
example:
- Active: true
Default: true
BillingCycleStart: Billing Day of Month
BillingDayOfMonth: 1st of the Month
BillingDayOfWeek: Monday
CalendarCycleStart: January
ProrationComputationMethod: Calendar Days of First Month
ProrateWhenBilledAsOneTime: true
SplitDistributionMethod: Defer to the last schedule
EvergreenBillingScheduleRecordsCreationOption: Ahead of time
CreateBillingForInformationalProducts: 'Yes'
SyncBillingInfoDuringAmendment: true
Id: BillingPreferenceIdToUpdate
Name: Updated Billing Preference Name
CreatedBy: null
CreatedDate: '0001-01-01T00:00:00'
ModifiedBy: null
ModifiedDate: '0001-01-01T00:00:00'
ExternalId: null
ETag: null
'204':
description: No Content
'500':
description: Internal Server Error
content:
text/plain:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
application/json:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
text/json:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
patch:
tags:
- Preferences
summary: Update preference records
description: Updates multiple preference records and returns the updated preference records with IDs.
requestBody:
description: The list of preference records with updated data
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BillingPreference'
example: "[\n {\n \"Active\": true,\n \"Default\": true,\n \"BillingCycleStart\": \"Billing Day of Month\",\n \"BillingDayOfMonth\": \"1st of the Month\",\n \"BillingDayOfWeek\": \"Monday\",\n \"CalendarCycleStart\": \"January\",\n \"ProrationComputationMethod\": \"Calendar Days of First Month\",\n \"ProrateWhenBilledAsOneTime\": true,\n \"SplitDistributionMethod\": \"Defer to the last schedule\",\n \"EvergreenBillingScheduleRecordsCreationOption\": \"Ahead of time\",\n \"CreateBillingForInformationalProducts\": \"Yes\",\n \"SyncBillingInfoDuringAmendment\": true,\n \"Id\": \"BillingPreferenceIdToUpdate\",\n \"Name\": \"Updated Billing Preference Name\"\n }\n]"
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/BillingPreference'
example: "[\n {\n \"Active\": true,\n \"Default\": true,\n \"BillingCycleStart\": \"Billing Day of Month\",\n \"BillingDayOfMonth\": \"1st of the Month\",\n \"BillingDayOfWeek\": \"Monday\",\n \"CalendarCycleStart\": \"January\",\n \"ProrationComputationMethod\": \"Calendar Days of First Month\",\n \"ProrateWhenBilledAsOneTime\": true,\n \"SplitDistributionMethod\": \"Defer to the last schedule\",\n \"EvergreenBillingScheduleRecordsCreationOption\": \"Ahead of time\",\n \"CreateBillingForInformationalProducts\": \"Yes\",\n \"SyncBillingInfoDuringAmendment\": true,\n \"Id\": \"BillingPreferenceIdToUpdate\",\n \"Name\": \"Updated Billing Preference Name\"\n }\n]"
application/*+json:
schema:
type: array
items:
$ref: '#/components/schemas/BillingPreference'
example: "[\n {\n \"Active\": true,\n \"Default\": true,\n \"BillingCycleStart\": \"Billing Day of Month\",\n \"BillingDayOfMonth\": \"1st of the Month\",\n \"BillingDayOfWeek\": \"Monday\",\n \"CalendarCycleStart\": \"January\",\n \"ProrationComputationMethod\": \"Calendar Days of First Month\",\n \"ProrateWhenBilledAsOneTime\": true,\n \"SplitDistributionMethod\": \"Defer to the last schedule\",\n \"EvergreenBillingScheduleRecordsCreationOption\": \"Ahead of time\",\n \"CreateBillingForInformationalProducts\": \"Yes\",\n \"SyncBillingInfoDuringAmendment\": true,\n \"Id\": \"BillingPreferenceIdToUpdate\",\n \"Name\": \"Updated Billing Preference Name\"\n }\n]"
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
application/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
text/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
'207':
description: Multi-Status
content:
text/plain:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
application/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
text/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
'400':
description: Bad Request
content:
text/plain:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
application/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
text/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
'500':
description: Internal Server Error
content:
text/plain:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
application/json:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
text/json:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
post:
tags:
- Preferences
summary: Create preferences
description: The different properties in the Preference record will be used by the Billing engine to generate Billing Schedules.
requestBody:
description: The list of preference records to create
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BillingPreference'
example: "[\n {\n \"Active\": true,\n \"Default\": true,\n \"BillingCycleStart\": \"Billing Day of Month\",\n \"BillingDayOfMonth\": \"15th of the Month\",\n \"BillingDayOfWeek\": \"Monday\",\n \"CalendarCycleStart\": \"January\",\n \"ProrationComputationMethod\": \"Calendar Days of First Month\",\n \"ProrateWhenBilledAsOneTime\": true,\n \"SplitDistributionMethod\": \"Defer to the last schedule\",\n \"EvergreenBillingScheduleRecordsCreationOption\": \"Ahead of time\",\n \"CreateBillingForInformationalProducts\": \"Yes\",\n \"SyncBillingInfoDuringAmendment\": true,\n \"Name\": \"Standard Billing Preference\"\n }\n]"
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/BillingPreference'
example: "[\n {\n \"Active\": true,\n \"Default\": true,\n \"BillingCycleStart\": \"Billing Day of Month\",\n \"BillingDayOfMonth\": \"15th of the Month\",\n \"BillingDayOfWeek\": \"Monday\",\n \"CalendarCycleStart\": \"January\",\n \"ProrationComputationMethod\": \"Calendar Days of First Month\",\n \"ProrateWhenBilledAsOneTime\": true,\n \"SplitDistributionMethod\": \"Defer to the last schedule\",\n \"EvergreenBillingScheduleRecordsCreationOption\": \"Ahead of time\",\n \"CreateBillingForInformationalProducts\": \"Yes\",\n \"SyncBillingInfoDuringAmendment\": true,\n \"Name\": \"Standard Billing Preference\"\n }\n]"
application/*+json:
schema:
type: array
items:
$ref: '#/components/schemas/BillingPreference'
example: "[\n {\n \"Active\": true,\n \"Default\": true,\n \"BillingCycleStart\": \"Billing Day of Month\",\n \"BillingDayOfMonth\": \"15th of the Month\",\n \"BillingDayOfWeek\": \"Monday\",\n \"CalendarCycleStart\": \"January\",\n \"ProrationComputationMethod\": \"Calendar Days of First Month\",\n \"ProrateWhenBilledAsOneTime\": true,\n \"SplitDistributionMethod\": \"Defer to the last schedule\",\n \"EvergreenBillingScheduleRecordsCreationOption\": \"Ahead of time\",\n \"CreateBillingForInformationalProducts\": \"Yes\",\n \"SyncBillingInfoDuringAmendment\": true,\n \"Name\": \"Standard Billing Preference\"\n }\n]"
responses:
'201':
description: Created
content:
text/plain:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
application/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
text/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
'207':
description: Multi-Status
content:
text/plain:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
application/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
text/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
'400':
description: Bad Request
content:
text/plain:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
application/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
text/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
'500':
description: Internal Server Error
content:
text/plain:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
application/json:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
text/json:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
/preferences/activate:
patch:
tags:
- Preferences
summary: Activate or deactivate a list of preference records
description: Toggles the Active flag for the ID's passed for preference records.
requestBody:
description: Contains the list of preference id and true/false to activate or deactivate the preference.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BillingPreferenceToggleActiveRequest'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/BillingPreferenceToggleActiveRequest'
application/*+json:
schema:
type: array
items:
$ref: '#/components/schemas/BillingPreferenceToggleActiveRequest'
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
application/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
text/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
'207':
description: Multi-Status
content:
text/plain:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
application/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
text/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
'400':
description: Bad Request
content:
text/plain:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
application/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
text/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
'500':
description: Internal Server Error
content:
text/plain:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
application/json:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
text/json:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
/preferences/{id}/default:
patch:
tags:
- Preferences
summary: Mark the Preference record as default
description: Marks the passed ID of the preference record as org default. <p>**Note:** There can be only one default preference record.</p>
parameters:
- name: id
in: path
description: preference id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
application/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
text/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
'400':
description: Bad Request
content:
text/plain:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
application/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
text/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
'500':
description: Internal Server Error
content:
text/plain:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
application/json:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
text/json:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
/preferences/{preferenceId}:
get:
tags:
- Preferences
summary: Get a preference record
description: 'Retrieves a single preference record by its identifier.
To access Billing Preference History records, ensure the "includes" parameter is set to "history".'
parameters:
- name: preferenceId
in: path
description: The identifier of the preference
required: true
schema:
type: string
- name: includes
in: query
description: Optional related entities to include
schema:
type: array
items:
type: string
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/BillingPreference'
application/json:
schema:
$ref: '#/components/schemas/BillingPreference'
text/json:
schema:
$ref: '#/components/schemas/BillingPreference'
'404':
description: Not Found
content:
text/plain:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
application/json:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
text/json:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
/preferences/{preferenceId}/activate:
patch:
tags:
- Preferences
summary: Activate or deactivate a preference record
description: Toggles the Active flag for the ID passed for a preference record.
parameters:
- name: preferenceId
in: path
description: Preference id
required: true
schema:
type: string
- name: active
in: query
description: Active flag value
schema:
type: boolean
default: true
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
application/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
text/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
'400':
description: Bad Request
content:
text/plain:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
application/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
text/json:
schema:
$ref: '#/components/schemas/BaseResponseBatchResponse'
'500':
description: Internal Server Error
content:
text/plain:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
application/json:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
text/json:
schema:
$ref: '#/components/schemas/ErrorApiResponse'
components:
schemas:
ErrorApiResponse:
type: object
properties:
Errors:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ApiError'
additionalProperties: false
ApiError:
type: object
properties:
Source:
type:
- string
- 'null'
Title:
type:
- string
- 'null'
Detail: {}
Help:
type:
- string
- 'null'
additionalProperties: false
BillingPreferenceToggleActiveRequest:
type: object
properties:
Active:
type: boolean
description: The flag contains whether the transaction has been successful or failed
Id:
type:
- string
- 'null'
description: Created/Updated record Id on processed in a transaction
additionalProperties: false
description: 'Represents a request to toggle the active flag for a billing preference.
Contains the preference identifier and the active status.'
PreferenceHistory:
type: object
properties:
Id:
type:
- string
- 'null'
Name:
type:
- string
- 'null'
CreatedBy:
$ref: '#/components/schemas/LookupObject'
CreatedDate:
type: string
format: date-time
ModifiedBy:
$ref: '#/components/schemas/LookupObject'
ModifiedDate:
type: string
format: date-time
ExternalId:
type:
- string
- 'null'
ETag:
type:
- string
- 'null'
BillingPreference:
$ref: '#/components/schemas/LookupObject'
Active:
type: boolean
Default:
type: boolean
BillingCycleStart:
type:
- string
- 'null'
BillingDayOfMonth:
type:
- string
- 'null'
BillingDayOfWeek:
type:
- string
- 'null'
CalendarCycleStart:
type:
- string
- 'null'
ProrationComputationMethod:
type:
- string
- 'null'
ProrateWhenBilledAsOneTime:
type: boolean
SplitDistributionMethod:
type:
- string
- 'null'
EvergreenBillingScheduleRecordsCreationOption:
type:
- string
- 'null'
CreateBillingForInformationalProducts:
type:
- string
- 'null'
SyncBillingInfoDuringAmendment:
type: boolean
additionalProperties: {}
BaseResponse:
type: object
properties:
Id:
type:
- string
- 'null'
RecordIndex:
type: integer
format: int32
IsSuccess:
type: boolean
Errors:
type:
- array
- 'null'
items:
type: string
ErrorMessage:
type:
- string
- 'null'
deprecated: true
additionalProperties: false
BaseResponseBatchResponse:
type: object
properties:
Summary:
type:
- string
- 'null'
Results:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/BaseResponse'
additionalProperties: false
LookupObject:
type: object
properties:
Id:
type:
- string
- 'null'
Name:
type:
- string
- 'null'
additionalProperties: false
BillingPreference:
type: object
properties:
Id:
type:
- string
- 'null'
Name:
type:
- string
- 'null'
CreatedBy:
$ref: '#/components/schemas/LookupObject'
CreatedDate:
type: string
format: date-time
ModifiedBy:
$ref: '#/components/schemas/LookupObject'
ModifiedDate:
type: string
format: date-time
ExternalId:
type:
- string
- 'null'
ETag:
type:
- string
- 'null'
Active:
type:
- boolean
- 'null'
Default:
type:
- boolean
- 'null'
BillingCycleStart:
type:
- string
- 'null'
BillingDayOfMonth:
type:
- string
- 'null'
BillingDayOfWeek:
type:
- string
- 'null'
CalendarCycleStart:
type:
- string
- 'null'
ProrationComputationMethod:
type:
- string
- 'null'
ProrateWhenBilledAsOneTime:
type:
- boolean
- 'null'
SplitDistributionMethod:
type:
- string
- 'null'
EvergreenBillingScheduleRecordsCreationOption:
type:
- string
- 'null'
CreateBillingForInformationalProducts:
type:
- string
- 'null'
SyncBillingInfoDuringAmendment:
type:
- boolean
- 'null'
History:
type: array
items:
$ref: '#/components/schemas/PreferenceHistory'
description: Child collection of PreferenceHistory (included when 'History' is requested via the includes parameter).
additionalProperties: {}
securitySchemes:
Bearer:
type: apiKey
description: Please insert JWT with Bearer into field
name: Authorization
in: header