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.
**Note:** There can be only one default preference record.
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