CHNLSYNC Customer Decisions API
The customer-decisions API from CHNLSYNC — 2 operation(s) for customer-decisions.
The customer-decisions API from CHNLSYNC — 2 operation(s) for customer-decisions.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/chnlsync-com:chnlsync-com-customer-decisions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Chnlsync Com Customer Decisions API
version: 0.1.0
x-refined-note:
- x-source differs across the merged source definitions and was not carried
description: 'Operations tagged customer-decisions across 2 of this provider''s published API definitions: chnlsync-com-openapi.json, chnlsync-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.chnlsync.dev
description: CHNLSYNC API host advertised in https://chnlsync.com/llms.txt (servers[] absent in the served spec; added here)
tags:
- name: customer-decisions
paths:
/api/v1/customer/cases/{case_id}/decisions/brief:
get:
tags:
- customer-decisions
summary: Get Decision Brief
description: Download an authenticated, uncached Markdown snapshot of the buyer's decision.
operationId: get_decision_brief_api_v1_customer_cases__case_id__decisions_brief_get
security:
- HTTPBearer: []
parameters:
- name: case_id
in: path
required: true
schema:
type: string
format: uuid
title: Case Id
responses:
'200':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customer/cases/{case_id}/decisions:
get:
tags:
- customer-decisions
summary: Get Decisions
description: Read the decision workspace for an owned case.
operationId: get_decisions_api_v1_customer_cases__case_id__decisions_get
security:
- HTTPBearer: []
parameters:
- name: case_id
in: path
required: true
schema:
type: string
format: uuid
title: Case Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerDecisionState'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
tags:
- customer-decisions
summary: Patch Decisions
description: Save reviewed facts or coordination work; never authorize supplier actions.
operationId: patch_decisions_api_v1_customer_cases__case_id__decisions_patch
security:
- HTTPBearer: []
parameters:
- name: case_id
in: path
required: true
schema:
type: string
format: uuid
title: Case Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DecisionMutation'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerDecisionState'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
InvoiceFollowUp:
properties:
id:
type: string
format: uuid
title: Id
line_id:
type: string
format: uuid
title: Line Id
owner:
type: string
maxLength: 160
minLength: 1
title: Owner
next_action:
type: string
maxLength: 1000
minLength: 1
title: Next Action
next_update:
type: string
format: date
title: Next Update
status:
type: string
enum:
- open
- resolved
title: Status
default: open
resolution:
anyOf:
- type: string
maxLength: 2000
minLength: 1
- type: 'null'
title: Resolution
resolved_by:
anyOf:
- type: string
maxLength: 255
minLength: 1
- type: 'null'
title: Resolved By
resolved_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Resolved At
resolution_artifact_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Resolution Artifact Id
resolution_excerpt:
anyOf:
- type: string
maxLength: 4000
minLength: 1
- type: 'null'
title: Resolution Excerpt
resolution_locator:
anyOf:
- type: string
maxLength: 500
minLength: 1
- type: 'null'
title: Resolution Locator
additionalProperties: false
type: object
required:
- id
- line_id
- owner
- next_action
- next_update
title: InvoiceFollowUp
description: Assigned internal coordination; resolving this record never submits a dispute.
ImplementationMilestone:
properties:
id:
type: string
format: uuid
title: Id
title:
type: string
maxLength: 160
minLength: 1
title: Title
owner:
type: string
maxLength: 160
minLength: 1
title: Owner
dependencies:
items:
type: string
format: uuid
type: array
maxItems: 30
title: Dependencies
status:
type: string
enum:
- pending
- in_progress
- blocked
- complete
title: Status
default: pending
next_update:
type: string
format: date
title: Next Update
notes:
type: string
maxLength: 2000
title: Notes
default: ''
additionalProperties: false
type: object
required:
- title
- owner
- next_update
title: ImplementationMilestone
description: Owned coordination work; completion records no external authorization.
DeadlineAttention:
properties:
record_id:
type: string
format: uuid
title: Record Id
kind:
type: string
enum:
- contract_expiration
- cancellation_notice
- renewal_notice
title: Kind
status:
type: string
enum:
- needs_confirmation
- conflict
- unknown
- upcoming
- due
- overdue
title: Status
actionable:
type: boolean
title: Actionable
deadline_date:
anyOf:
- type: string
format: date
- type: 'null'
title: Deadline Date
days_until:
anyOf:
- type: integer
- type: 'null'
title: Days Until
selected_candidate_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Selected Candidate Id
candidate_ids:
items:
type: string
format: uuid
type: array
title: Candidate Ids
service:
type: string
title: Service
location:
type: string
title: Location
owner:
type: string
title: Owner
next_action:
type: string
title: Next Action
message:
type: string
title: Message
additionalProperties: false
type: object
required:
- record_id
- kind
- status
- actionable
- deadline_date
- days_until
- selected_candidate_id
- candidate_ids
- service
- location
- owner
- next_action
- message
title: DeadlineAttention
description: Buyer attention item; an actionable date exists only after current confirmation.
InvoiceLineInput-Input:
properties:
id:
type: string
format: uuid
title: Id
label:
type: string
maxLength: 160
minLength: 1
title: Label
kind:
type: string
enum:
- recurring
- installation
- proration
- tax
- other
title: Kind
amount:
anyOf:
- type: number
maximum: 1000000000.0
minimum: 0.0
- type: string
pattern: ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
title: Amount
currency:
type: string
pattern: ^[A-Z]{3}$
title: Currency
default: USD
artifact_id:
type: string
format: uuid
title: Artifact Id
source_excerpt:
type: string
maxLength: 4000
minLength: 1
title: Source Excerpt
source_locator:
type: string
maxLength: 500
minLength: 1
title: Source Locator
confirmed_same_service_and_quantity:
type: boolean
title: Confirmed Same Service And Quantity
default: false
full_billing_period:
type: boolean
title: Full Billing Period
default: false
service_days:
anyOf:
- type: integer
maximum: 366.0
minimum: 1.0
- type: 'null'
title: Service Days
period_days:
anyOf:
- type: integer
maximum: 366.0
minimum: 1.0
- type: 'null'
title: Period Days
proration_basis_confirmed:
type: boolean
title: Proration Basis Confirmed
default: false
additionalProperties: false
type: object
required:
- label
- kind
- amount
- artifact_id
- source_excerpt
- source_locator
title: InvoiceLineInput
description: One manually transcribed charge with its evidence and explicit comparison scope.
DeadlineConfirmation:
properties:
kind:
type: string
enum:
- contract_expiration
- cancellation_notice
- renewal_notice
title: Kind
selected_candidate_id:
type: string
format: uuid
title: Selected Candidate Id
acknowledged_candidate_ids:
items:
type: string
format: uuid
type: array
maxItems: 49
title: Acknowledged Candidate Ids
default: []
reviewer_id:
type: string
maxLength: 255
minLength: 1
title: Reviewer Id
rationale:
type: string
maxLength: 2000
minLength: 1
title: Rationale
confirmed_at:
type: string
format: date-time
title: Confirmed At
evidence_revision:
type: integer
minimum: 1.0
title: Evidence Revision
evidence_fingerprint:
type: string
pattern: ^[a-f0-9]{64}$
title: Evidence Fingerprint
additionalProperties: false
type: object
required:
- kind
- selected_candidate_id
- reviewer_id
- rationale
- confirmed_at
- evidence_revision
- evidence_fingerprint
title: DeadlineConfirmation
description: A named review of one controlling clause against an exact evidence snapshot.
ReviewedInvoice:
properties:
id:
type: string
format: uuid
title: Id
invoice_artifact_id:
type: string
format: uuid
title: Invoice Artifact Id
service_label:
type: string
maxLength: 160
minLength: 1
title: Service Label
selection_fingerprint:
type: string
pattern: ^[a-f0-9]{64}$
title: Selection Fingerprint
selection_deliverable_id:
type: string
format: uuid
title: Selection Deliverable Id
selection_response_id:
type: string
maxLength: 100
minLength: 1
title: Selection Response Id
reviewed_by:
type: string
maxLength: 255
minLength: 1
title: Reviewed By
reviewed_at:
type: string
format: date-time
title: Reviewed At
lines:
items:
$ref: '#/components/schemas/ReviewedInvoiceLine'
type: array
maxItems: 20
minItems: 1
title: Lines
follow_ups:
items:
$ref: '#/components/schemas/InvoiceFollowUp'
type: array
maxItems: 20
title: Follow Ups
additionalProperties: false
type: object
required:
- id
- invoice_artifact_id
- service_label
- selection_fingerprint
- selection_deliverable_id
- selection_response_id
- reviewed_by
- reviewed_at
- lines
title: ReviewedInvoice
description: An evidence-linked first-invoice assessment of an exact accepted quote snapshot.
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
CustomerDecisionState:
properties:
revision:
type: integer
title: Revision
default: 0
deadlines:
items:
$ref: '#/components/schemas/DeadlineRecord'
type: array
maxItems: 30
title: Deadlines
selection:
anyOf:
- $ref: '#/components/schemas/SelectedQuote'
- type: 'null'
selection_unavailable:
type: boolean
title: Selection Unavailable
default: false
attention:
items:
$ref: '#/components/schemas/DeadlineAttention'
type: array
title: Attention
milestones:
items:
$ref: '#/components/schemas/ImplementationMilestone'
type: array
maxItems: 30
title: Milestones
invoice_reviews:
items:
$ref: '#/components/schemas/ReviewedInvoice'
type: array
maxItems: 10
title: Invoice Reviews
additionalProperties: false
type: object
title: CustomerDecisionState
description: Encrypted state for one tenant-owned case; never stored in activity telemetry.
DeadlineCandidate:
properties:
id:
type: string
format: uuid
title: Id
kind:
type: string
enum:
- contract_expiration
- cancellation_notice
- renewal_notice
title: Kind
deadline_date:
anyOf:
- type: string
format: date
- type: 'null'
title: Deadline Date
artifact_id:
type: string
format: uuid
title: Artifact Id
source_excerpt:
type: string
maxLength: 4000
minLength: 1
title: Source Excerpt
source_locator:
type: string
maxLength: 500
minLength: 1
title: Source Locator
additionalProperties: false
type: object
required:
- id
- kind
- artifact_id
- source_excerpt
- source_locator
title: DeadlineCandidate
description: One retained source clause; a missing exact date remains explicitly uncertain.
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ReviewedInvoiceLine:
properties:
line:
$ref: '#/components/schemas/InvoiceLineInput-Output'
status:
type: string
enum:
- matches_quote
- confirmed_discrepancy
- proration_matches
- plausible_proration
- tax_uncertain
- missing_information
title: Status
expected_amount:
anyOf:
- type: string
pattern: ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
- type: 'null'
title: Expected Amount
difference:
anyOf:
- type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
- type: 'null'
title: Difference
explanation:
type: string
maxLength: 1500
minLength: 1
title: Explanation
follow_up_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Follow Up Id
additionalProperties: false
type: object
required:
- line
- status
- explanation
title: ReviewedInvoiceLine
description: A preserved charge, qualified finding and optional deterministic comparison.
InvoiceReviewInput:
properties:
invoice_artifact_id:
type: string
format: uuid
title: Invoice Artifact Id
service_label:
type: string
maxLength: 160
minLength: 1
title: Service Label
lines:
items:
$ref: '#/components/schemas/InvoiceLineInput-Input'
type: array
maxItems: 20
minItems: 1
title: Lines
owner:
type: string
maxLength: 160
minLength: 1
title: Owner
next_action:
type: string
maxLength: 1000
minLength: 1
title: Next Action
next_update:
type: string
format: date
title: Next Update
additionalProperties: false
type: object
required:
- invoice_artifact_id
- service_label
- lines
- owner
- next_action
- next_update
title: InvoiceReviewInput
description: One invoice for the accepted service, with an owner for unresolved findings.
SelectedQuote:
properties:
deliverable_id:
type: string
format: uuid
title: Deliverable Id
deliverable_revision:
type: integer
title: Deliverable Revision
response_id:
type: string
title: Response Id
fingerprint:
type: string
title: Fingerprint
display_name:
type: string
title: Display Name
monthly_usd:
type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
title: Monthly Usd
one_time_usd:
type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
title: One Time Usd
contract_months:
type: integer
title: Contract Months
rationale:
type: string
maxLength: 4000
minLength: 1
title: Rationale
acknowledged_risks:
type: string
maxLength: 4000
minLength: 1
title: Acknowledged Risks
selected_by:
type: string
title: Selected By
selected_at:
type: string
format: date-time
title: Selected At
source_artifact_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Source Artifact Id
source_locator:
anyOf:
- type: string
- type: 'null'
title: Source Locator
source_page:
anyOf:
- type: integer
- type: 'null'
title: Source Page
option_kind:
type: string
enum:
- supplier_quote
- incumbent
- no_change
title: Option Kind
default: supplier_quote
assumptions:
items:
type: string
type: array
maxItems: 20
title: Assumptions
exclusions:
items:
type: string
type: array
maxItems: 20
title: Exclusions
commercial_notes:
anyOf:
- type: string
- type: 'null'
title: Commercial Notes
valid_until:
anyOf:
- type: string
format: date
- type: 'null'
title: Valid Until
additionalProperties: false
type: object
required:
- deliverable_id
- deliverable_revision
- response_id
- fingerprint
- display_name
- monthly_usd
- one_time_usd
- contract_months
- rationale
- acknowledged_risks
- selected_by
- selected_at
title: SelectedQuote
description: An authenticated buyer's choice of an exact, human-reviewed comparison row.
DecisionMutation:
properties:
revision:
type: integer
minimum: 0.0
title: Revision
operation:
type: string
enum:
- add_deadline
- add_candidate
- confirm_deadline
- select_quote
- save_milestone
- review_invoice
- resolve_invoice_issue
title: Operation
deadline_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Deadline Id
service:
type: string
maxLength: 160
title: Service
default: ''
location:
type: string
maxLength: 160
title: Location
default: ''
owner:
type: string
maxLength: 160
title: Owner
default: ''
next_action:
type: string
maxLength: 1000
title: Next Action
default: ''
candidate:
anyOf:
- $ref: '#/components/schemas/DeadlineCandidate'
- type: 'null'
selected_candidate_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Selected Candidate Id
acknowledged_candidate_ids:
items:
type: string
format: uuid
type: array
maxItems: 100
title: Acknowledged Candidate Ids
rationale:
type: string
maxLength: 4000
title: Rationale
default: ''
acknowledged_risks:
type: string
maxLength: 4000
title: Acknowledged Risks
default: ''
deliverable_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Deliverable Id
expected_deliverable_revision:
anyOf:
- type: integer
minimum: 1.0
- type: 'null'
title: Expected Deliverable Revision
response_id:
type: string
maxLength: 100
title: Response Id
default: ''
milestone:
anyOf:
- $ref: '#/components/schemas/ImplementationMilestone'
- type: 'null'
invoice:
anyOf:
- $ref: '#/components/schemas/InvoiceReviewInput'
- type: 'null'
invoice_review_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Invoice Review Id
follow_up_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Follow Up Id
resolution:
type: string
maxLength: 2000
title: Resolution
default: ''
resolution_artifact_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Resolution Artifact Id
resolution_excerpt:
type: string
maxLength: 4000
title: Resolution Excerpt
default: ''
resolution_locator:
type: string
maxLength: 500
title: Resolution Locator
default: ''
next_update:
anyOf:
- type: string
format: date
- type: 'null'
title: Next Update
additionalProperties: false
type: object
required:
- revision
- operation
title: DecisionMutation
description: A user command whose author and selected quote facts come from the server.
DeadlineRecord:
properties:
id:
type: string
format: uuid
title: Id
service:
type: string
maxLength: 255
title: Service
default: ''
location:
type: string
maxLength: 255
title: Location
default: ''
owner:
type: string
maxLength: 255
title: Owner
default: ''
next_action:
type: string
maxLength: 2000
title: Next Action
default: ''
revision:
type: integer
minimum: 1.0
title: Revision
default: 1
candidates:
items:
$ref: '#/components/schemas/DeadlineCandidate'
type: array
maxItems: 50
title: Candidates
default: []
confirmations:
items:
$ref: '#/components/schemas/DeadlineConfirmation'
type: array
maxItems: 3
title: Confirmations
default: []
additionalProperties: false
type: object
required:
- id
title: DeadlineRecord
description: Preserved contract and amendment claims with separate confirmation for each kind.
InvoiceLineInput-Output:
properties:
id:
type: string
format: uuid
title: Id
label:
type: string
maxLength: 160
minLength: 1
title: Label
kind:
type: string
enum:
- recurring
- installation
- proration
- tax
- other
title: Kind
amount:
type: string
pattern: ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
title: Amount
currency:
type: string
pattern: ^[A-Z]{3}$
title: Currency
default: USD
artifact_id:
type: string
format: uuid
title: Artifact Id
source_excerpt:
type: string
maxLength: 4000
minLength: 1
title: Source Excerpt
source_locator:
type: string
maxLength: 500
minLength: 1
title: Source Locator
confirmed_same_service_and_quantity:
type: boolean
title: Confirmed Same Service And Quantity
default: false
full_billing_period:
type: boolean
title: Full Billing Period
default: false
service_days:
anyOf:
- type: integer
maximum: 366.0
minimum: 1.0
- type: 'null'
title: Service Days
period_days:
anyOf:
- type: integer
maximum: 366.0
minimum: 1.0
- type: 'null'
title: Period Days
proration_basis_confirmed:
type: boolean
title: Proration Basis Confirmed
default: false
additionalProperties: false
type: object
required:
- label
- kind
- amount
- artifact_id
- source_excerpt
- source_locator
title: InvoiceLineInput
description: One manually transcribed charge with its evidence and explicit comparison scope.
securitySchemes:
HTTPBearer:
type: http
scheme: bearer
APIKeyHeader:
type: apiKey
in: header
name: X-Agent-API-Key
x-refined-from:
- chnlsync-com-openapi.json
- chnlsync-com-openapi.yml