XC Contract Settings#
CRUD endpoints for the billing/document configuration of an XC (Cross-Connect) request: document language, pricing (MRC/NRC), currency, and the account name shown on generated documents.Concepts#
One setting per request: each XC request can have at most one contract setting. Creating a second one for the same xc_request_id returns 409 Conflict.
doc_lang is required on create: must be EN or ES — this is the language used when generating the SOW/Acta documents for the request.
Deriving price from a client price record: passing xc_client_price_id (a record from XC Client Prices) copies its mrc_price, nrc_price, currency, and account_name onto the contract setting, overriding any explicit values passed in the same request. Passing it again on update re-syncs those fields from the (possibly different) client price record.
xc_request_id is immutable: it can only be set at creation; attempting to change it on update returns 400 Bad Request.
Participants: Get responses (by ID and by request) include the setting's participants (see XC Contract Setting Participants); the List response does not.
Endpoints#
GET /v1/xc/contract-settingsPaginated list, optionally filtered by xc_request_id, xc_client_price_id, or doc_lang.POST /v1/xc/contract-settingsCreates the contract setting for a request. Requires xc_request_id and doc_lang.GET /v1/xc/contract-settings/{id}Returns a setting by its own ID.GET /v1/xc/contract-settings/by-request/{id}Returns the setting for a given XC request ID.PATCH /v1/xc/contract-settings/{id}Updates one or more fields; xc_request_id cannot be changed.DELETE /v1/xc/contract-settings/{id}Permanently deletes a setting.Source#
Router: routes/v1/xc/contract-settings.router.js
Controller: controllers/xc/contract-settings.controller.js
Service: services/xc/contract-settings.service.js
Entity: entities/xc-contract-setting.js
Modified at 2026-09-25 18:13:15