CHNLSYNC Customer Decisions API

The customer-decisions API from CHNLSYNC — 2 operation(s) for customer-decisions.

GitHub OpenAPI

Operations 3

GET /api/v1/customer/cases/{case_id}/decisions/brief Get Decision Brief #
GET /api/v1/customer/cases/{case_id}/decisions Get Decisions #
PATCH /api/v1/customer/cases/{case_id}/decisions Patch Decisions #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/chnlsync-com:chnlsync-com-customer-decisions-api"
All apis
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.

Get an API 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 Specification

chnlsync-com-customer-decisions-api-openapi.yml Raw ↑
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