> ## Documentation Index
> Fetch the complete documentation index at: https://docs.younegotiate.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Show open negotiation detail

> Return the open negotiation offer detail used by the Creditor Portal Negotiations > Open Negotiations modal. The account must belong to the authenticated creditor company, match any assigned sub account, and still be an active unresolved open offer. The same detail is also available from `GET /dashboard/performance/open-negotiations/{consumer}`.



## OpenAPI

````yaml /api/creditor.openapi.yaml get /consumer-offers/{consumer}
openapi: 3.1.0
info:
  title: YouNegotiate Creditor API
  version: '2.0'
  description: >-
    Stateless API endpoints for creditor portal authentication and account
    access.
servers:
  - url: https://api.creditor.younegotiate.com
    description: Production
security: []
tags:
  - name: System
    description: Public creditor domain system and health endpoints.
  - name: Authentication
    description: Creditor registration, login, password, and email verification endpoints.
  - name: Account Settings
    description: >-
      Authenticated creditor profile, contact, operating-hours, and
      profile-image endpoints.
  - name: Account Profile
    description: >-
      Creditor onboarding profile, membership, billing, and setup status
      endpoints.
  - name: Setup Wizard
    description: >-
      Creditor setup wizard status, required-step completion, and optional-step
      completion.
  - name: Dashboard
    description: Creditor dashboard work queues and performance widgets.
  - name: Import / Export
    description: >-
      Creditor consumer import upload sessions, queued imports, history,
      downloads, and failed-row files.
  - name: Membership Settings
    description: >-
      Creditor membership dashboard, plan changes, payment method, cancellation,
      special-plan inquiry, and over-limit retry endpoints.
  - name: Merchant Account
    description: >-
      Existing merchant processor credentials, Tilled onboarding, and merchant
      application endpoints.
  - name: Header Profiles
    description: >-
      CSV header profile upload, mapping, download, and setup wizard completion
      endpoints.
  - name: SFTP Connections
    description: >-
      Creditor-managed SFTP connection profiles for imports, exports, and setup
      wizard completion.
  - name: Sub Accounts
    description: >-
      Creditor-managed sub account list, export, create, update, and delete
      endpoints.
  - name: Pay Terms Offers
    description: >-
      Creditor-managed master, sub-account, group, and group-sub-account Pay
      Terms endpoints.
  - name: Individual Custom Offers
    description: Creditor individual custom offer list endpoints.
  - name: Negotiations
    description: >-
      Creditor negotiation work queues, including notice responses and offer
      review counts.
  - name: Communications / CFPB Validation Letter
    description: >-
      CFPB Validation Letter tables, secure EcoLetter send/resend, CSV export,
      and print/download actions.
  - name: Communications / EcoLetter Template
    description: >-
      Creditor EcoLetter template management for secure eLetter communications
      and campaigns.
  - name: Communications / Groups
    description: >-
      Creditor communication group management for dynamic consumer targeting and
      campaign selection.
  - name: Communications / Schedule Campaign
    description: >-
      Creditor EcoLetter campaign scheduling, quote, immediate send, and
      delivery queue endpoints.
  - name: Communications / Campaign Tracker
    description: >-
      Creditor campaign tracker reporting, refresh, and consumer export
      endpoints.
  - name: Consumer Profiles
    description: Creditor Consumer Profiles list, filter options, and CSV export endpoints.
  - name: Terms & Conditions
    description: Creditor-managed master and sub-account Terms & Conditions templates.
  - name: About Us & Contact
    description: Creditor-managed company About Us content shown to consumers.
  - name: Logo & Links
    description: >-
      Creditor-managed master and sub-account personalized logo colors, size,
      and consumer link metadata.
  - name: Users
    description: >-
      Master creditor user management, invitations, and account deletion
      endpoints.
paths:
  /consumer-offers/{consumer}:
    get:
      tags:
        - Negotiations
      summary: Show open negotiation detail
      description: >-
        Return the open negotiation offer detail used by the Creditor Portal
        Negotiations > Open Negotiations modal. The account must belong to the
        authenticated creditor company, match any assigned sub account, and
        still be an active unresolved open offer. The same detail is also
        available from `GET
        /dashboard/performance/open-negotiations/{consumer}`.
      operationId: creditorShowOpenNegotiation
      parameters:
        - name: consumer
          in: path
          required: true
          description: Consumer account ID from the open negotiation list row.
          schema:
            type: integer
      responses:
        '200':
          description: Open negotiation detail returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenNegotiationDetailResponse'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/ActiveMembershipRequired'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
        - bearerAuth: []
components:
  schemas:
    OpenNegotiationDetailResponse:
      type: object
      additionalProperties: false
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/OpenNegotiationDetail'
    OpenNegotiationDetail:
      type: object
      additionalProperties: false
      required:
        - id
        - is_not_editable
        - consumer
        - pay_term_source
        - negotiation
        - original_offer
        - consumer_offer
        - creditor_offer
        - validation_limits
      properties:
        id:
          type: integer
        is_not_editable:
          type: boolean
          description: >-
            True when the offer should be opened read-only because a creditor
            counter offer has already been sent.
        consumer:
          $ref: '#/components/schemas/OpenNegotiationDetailConsumer'
        pay_term_source:
          $ref: '#/components/schemas/OpenNegotiationPayTermSource'
        negotiation:
          $ref: '#/components/schemas/OpenNegotiationDetailNegotiation'
        original_offer:
          $ref: '#/components/schemas/OpenNegotiationOriginalOffer'
        consumer_offer:
          $ref: '#/components/schemas/OpenNegotiationConsumerOffer'
        creditor_offer:
          $ref: '#/components/schemas/OpenNegotiationCreditorOffer'
        validation_limits:
          $ref: '#/components/schemas/OpenNegotiationValidationLimits'
    MessageResponse:
      type: object
      required:
        - message
      properties:
        message:
          type: string
    OpenNegotiationDetailConsumer:
      type: object
      additionalProperties: false
      required:
        - id
        - full_name
        - member_account_number
        - account_number
        - account_name
        - subclient_name
        - current_balance
        - payment_setup
        - expiry_date
      properties:
        id:
          type: integer
        full_name:
          type: string
        member_account_number:
          type: string
          nullable: true
        account_number:
          type: string
          nullable: true
        account_name:
          type: string
          nullable: true
        subclient_name:
          type: string
          description: Sub-account display name, or `N/A` when no sub-account name exists.
        current_balance:
          type: string
          pattern: ^-?\d+\.\d{2}$
        payment_setup:
          type: boolean
        expiry_date:
          type: string
          format: date
          nullable: true
    OpenNegotiationPayTermSource:
      type: object
      additionalProperties: false
      required:
        - value
        - label
      properties:
        value:
          type: string
          nullable: true
          enum:
            - individual
            - master
            - group
            - group_subclient
            - sub_account
        label:
          type: string
          nullable: true
    OpenNegotiationDetailNegotiation:
      type: object
      additionalProperties: false
      required:
        - id
        - type
        - installment_type
        - status
        - reason
      properties:
        id:
          type: integer
        type:
          $ref: '#/components/schemas/OpenNegotiationDetailType'
        installment_type:
          $ref: '#/components/schemas/OpenNegotiationInstallmentType'
        status:
          $ref: '#/components/schemas/OpenNegotiationStatus'
        reason:
          type: string
          nullable: true
    OpenNegotiationOriginalOffer:
      type: object
      additionalProperties: false
      required:
        - settlement
        - payment_plan
        - installment
        - first_payment
      properties:
        settlement:
          $ref: '#/components/schemas/OpenNegotiationPercentAmount'
        payment_plan:
          $ref: '#/components/schemas/OpenNegotiationPercentAmount'
        installment:
          $ref: '#/components/schemas/OpenNegotiationInstallmentOffer'
        first_payment:
          $ref: '#/components/schemas/OpenNegotiationFirstPayment'
    OpenNegotiationConsumerOffer:
      type: object
      additionalProperties: false
      required:
        - settlement_amount
        - payment_plan_amount
        - monthly_amount
        - first_payment_date
        - note
        - sent_at
      properties:
        settlement_amount:
          type: string
          pattern: ^-?\d+\.\d{2}$
          nullable: true
        payment_plan_amount:
          type: string
          pattern: ^-?\d+\.\d{2}$
          nullable: true
        monthly_amount:
          type: string
          pattern: ^-?\d+\.\d{2}$
          nullable: true
        first_payment_date:
          type: string
          format: date
          nullable: true
        note:
          type: string
          nullable: true
        sent_at:
          type: string
          format: date-time
          nullable: true
    OpenNegotiationCreditorOffer:
      allOf:
        - $ref: '#/components/schemas/OpenNegotiationConsumerOffer'
    OpenNegotiationValidationLimits:
      type: object
      additionalProperties: false
      required:
        - max_settlement_amount
        - max_payment_plan_amount
        - max_monthly_amount
        - min_first_payment_date
        - counter_note_max_length
      properties:
        max_settlement_amount:
          type: string
          pattern: ^-?\d+\.\d{2}$
        max_payment_plan_amount:
          type: string
          pattern: ^-?\d+\.\d{2}$
        max_monthly_amount:
          type: string
          pattern: ^-?\d+\.\d{2}$
        min_first_payment_date:
          type: string
          format: date
        counter_note_max_length:
          type: integer
    OpenNegotiationDetailType:
      type: object
      additionalProperties: false
      required:
        - value
        - label
        - offer_label
      properties:
        value:
          type: string
          nullable: true
          enum:
            - pif
            - installment
        label:
          type: string
          nullable: true
          example: Pay in Full
        offer_label:
          type: string
          nullable: true
          enum:
            - Settlement
            - Payment Plan
    OpenNegotiationInstallmentType:
      type: object
      nullable: true
      additionalProperties: false
      required:
        - value
        - label
      properties:
        value:
          type: string
          enum:
            - weekly
            - bimonthly
            - monthly
        label:
          type: string
          enum:
            - Weekly
            - Bimonthly
            - Monthly
    OpenNegotiationStatus:
      type: object
      additionalProperties: false
      required:
        - value
        - label
        - requires_response
        - counter_sent_at
      properties:
        value:
          type: string
          enum:
            - consumer_new
            - consumer_counter
            - creditor_counter
        label:
          type: string
          enum:
            - New Offer!
            - New Counter Offer
            - Counter Sent
        requires_response:
          type: boolean
          description: True when the row needs creditor review.
        counter_sent_at:
          type: string
          format: date-time
          nullable: true
    OpenNegotiationPercentAmount:
      type: object
      additionalProperties: false
      required:
        - percentage
        - amount
      properties:
        percentage:
          type: number
          format: float
        amount:
          type: string
          pattern: ^-?\d+\.\d{2}$
    OpenNegotiationInstallmentOffer:
      type: object
      additionalProperties: false
      required:
        - percentage
        - monthly_amount
      properties:
        percentage:
          type: number
          format: float
        monthly_amount:
          type: string
          pattern: ^-?\d+\.\d{2}$
    OpenNegotiationFirstPayment:
      type: object
      additionalProperties: false
      required:
        - days
        - date
      properties:
        days:
          type: integer
        date:
          type: string
          format: date
  responses:
    Unauthenticated:
      description: Missing or invalid bearer token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MessageResponse'
    ActiveMembershipRequired:
      description: Authenticated creditor does not have an active membership.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MessageResponse'
          example:
            message: An active membership is required.
    NotFound:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MessageResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Sanctum token

````