> ## 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.

# Save notice response account

> Save the account-details step for an owned notice-response account. Sender details must be saved first. Duplicate active account numbers are rejected before the notice response is saved. Deactivated accounts can be reused unless they belong to the selected sender company.



## OpenAPI

````yaml /api/consumer.openapi.yaml put /accounts/{consumer}/notice-response/account
openapi: 3.1.0
info:
  title: YouNegotiate Consumer API
  version: '2.0'
  description: >-
    Stateless API endpoints for consumer portal authentication and account
    access.
servers:
  - url: https://api.consumer.younegotiate.com
    description: Production
security: []
tags:
  - name: System
    description: Public consumer domain system and health endpoints.
  - name: Authentication
    description: >-
      Consumer identity matching, contact capture, OTP verification, token
      creation, and logout endpoints.
  - name: Profile - My ecoAddress
    description: Consumer profile tab for signed-in identity / ecoAddress context.
  - name: Profile - Communication Controls
    description: >-
      Consumer profile tab for communication permissions, email/mobile changes,
      and email/mobile verification.
  - name: Profile - My Billing Details
    description: >-
      Consumer profile tab for billing name and billing address details used for
      payment verification.
  - name: Profile - Personalize My Portal
    description: Consumer profile tab for portal colors and profile image personalization.
  - name: Accounts
    description: Consumer-owned account list and account detail endpoints.
  - name: Bill Pay Wallet
    description: >-
      Consumer Bill Pay Wallet saved payment profiles and scheduled payment
      method update endpoints.
  - name: Upcoming Payments
    description: >-
      Consumer My Bill Pay Calendar upcoming-payment rows and calendar display
      data.
  - name: Calendar Sync
    description: >-
      Consumer Google and Microsoft calendar connection, OAuth callback, and
      live-update endpoints.
  - name: Gift Registry
    description: >-
      Consumer Bill Pay Gift Registry account list, shared registry, and Helping
      Hand link endpoints.
  - name: EcoMailbox
    description: Consumer MyEcoMailBox list endpoints and unread sidebar badge state.
  - name: Notice Responses
    description: >-
      Consumer My Account notice-response wizard endpoints for sender details
      and account details.
paths:
  /accounts/{consumer}/notice-response/account:
    put:
      tags:
        - Notice Responses
      summary: Save notice response account
      description: >-
        Save the account-details step for an owned notice-response account.
        Sender details must be saved first. Duplicate active account numbers are
        rejected before the notice response is saved. Deactivated accounts can
        be reused unless they belong to the selected sender company.
      operationId: consumerUpdateNoticeResponseAccount
      parameters:
        - $ref: '#/components/parameters/ConsumerAccountId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateNoticeResponseAccountRequest'
      responses:
        '200':
          description: Account details saved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoticeResponseWizardMutationResponse'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/NoticeResponseConflict'
        '422':
          $ref: '#/components/responses/ValidationError'
      security:
        - bearerAuth: []
components:
  parameters:
    ConsumerAccountId:
      name: consumer
      in: path
      required: true
      description: Consumer account ID.
      schema:
        type: integer
  schemas:
    UpdateNoticeResponseAccountRequest:
      type: object
      required:
        - account_name
        - account_number
        - notice_balance
      properties:
        account_name:
          type: string
          minLength: 2
          maxLength: 100
          example: Notice Account
        account_number:
          type: string
          minLength: 2
          maxLength: 50
          description: >-
            Duplicate active consumer account numbers and duplicate active
            notice-response account numbers are rejected. Deactivated duplicates
            are rejected only when they belong to the selected sender company.
          example: NOTICE-123
        notice_balance:
          type: number
          minimum: 0.01
          multipleOf: 0.01
          example: 425.5
    NoticeResponseWizardMutationResponse:
      type: object
      required:
        - message
        - data
      properties:
        message:
          type: string
          examples:
            - Notice response started.
            - Sender details saved.
            - Account details saved.
            - Notice uploaded.
        data:
          $ref: '#/components/schemas/NoticeResponseWizard'
    NoticeResponseWizard:
      type: object
      required:
        - account
        - current_step
        - completed_steps
        - steps
        - response_options
        - sender_detail
        - notice_response
      properties:
        account:
          $ref: '#/components/schemas/NoticeResponseAccountSummary'
        current_step:
          $ref: '#/components/schemas/NoticeResponseStepKey'
        completed_steps:
          type: array
          items:
            $ref: '#/components/schemas/NoticeResponseStepKey'
          example:
            - sender_details
            - account_details
        steps:
          type: array
          items:
            $ref: '#/components/schemas/NoticeResponseStep'
        response_options:
          $ref: '#/components/schemas/NoticeResponseResponseOptions'
        sender_detail:
          anyOf:
            - $ref: '#/components/schemas/NoticeResponseSenderDetail'
            - type: 'null'
        notice_response:
          anyOf:
            - $ref: '#/components/schemas/NoticeResponseWizardNotice'
            - type: 'null'
    MessageResponse:
      type: object
      required:
        - message
      properties:
        message:
          type: string
    ProfileIncompleteResponse:
      type: object
      required:
        - code
        - message
        - required_steps
      properties:
        code:
          type: string
          example: profile_incomplete
        message:
          type: string
          example: Please complete your communication profile before viewing accounts.
        required_steps:
          type: array
          items:
            type: string
          example:
            - profile_communication
    NoticeResponseUnavailableResponse:
      type: object
      required:
        - code
        - message
        - current_step
      properties:
        code:
          type: string
          example: notice_response_unavailable
        message:
          type: string
          example: Sender details must be saved before account details.
        current_step:
          anyOf:
            - $ref: '#/components/schemas/NoticeResponseStepKey'
            - type: 'null'
    ValidationErrorResponse:
      type: object
      required:
        - message
        - errors
      properties:
        message:
          type: string
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
    NoticeResponseAccountSummary:
      type: object
      required:
        - id
        - first_name
        - last_name
        - dob
        - last4ssn
        - company_id
        - status
        - status_label
      properties:
        id:
          type: integer
        first_name:
          type:
            - string
            - 'null'
        last_name:
          type:
            - string
            - 'null'
        dob:
          type:
            - string
            - 'null'
          format: date
        last4ssn:
          type:
            - string
            - 'null'
          example: '1234'
        company_id:
          type:
            - integer
            - 'null'
        status:
          type:
            - string
            - 'null'
          example: joined
        status_label:
          type:
            - string
            - 'null'
          example: Ready to Negotiate
    NoticeResponseStepKey:
      type: string
      enum:
        - sender_details
        - account_details
        - upload_notice
        - create_response
    NoticeResponseStep:
      type: object
      required:
        - key
        - label
        - completed
        - current
      properties:
        key:
          $ref: '#/components/schemas/NoticeResponseStepKey'
        label:
          type: string
          example: Sender Details
        completed:
          type: boolean
        current:
          type: boolean
    NoticeResponseResponseOptions:
      type: object
      required:
        - negotiation_types
        - installment_types
        - custom_offer_reasons
      properties:
        negotiation_types:
          type: array
          description: >-
            Options for `POST /accounts/{consumer}/notice-response/custom-offer`
            `negotiation_type`.
          items:
            $ref: '#/components/schemas/ConsumerOfferOptionRow'
          example:
            - value: pif
              label: Settlement
            - value: installment
              label: Payment Plan
        installment_types:
          type: array
          description: >-
            Options for `installment_type` when `negotiation_type` is
            `installment`.
          items:
            $ref: '#/components/schemas/ConsumerOfferOptionRow'
          example:
            - value: weekly
              label: Weekly
            - value: bimonthly
              label: Bimonthly
            - value: monthly
              label: Monthly
        custom_offer_reasons:
          type: array
          description: >-
            Custom offer reason labels that the frontend can present in the
            create-response step.
          items:
            type: string
          example:
            - Prefer not to say
            - UnEmployed
            - Death in the Family
            - Unexpected Expenses
    NoticeResponseSenderDetail:
      type: object
      required:
        - id
        - sender
      properties:
        id:
          type: integer
        sender:
          $ref: '#/components/schemas/NoticeResponseSender'
    NoticeResponseWizardNotice:
      type: object
      required:
        - id
        - account_name
        - account_number
        - notice_balance
        - status
        - status_label
        - reason_label
        - file_path
        - file_url
        - has_notice_photo
        - custom_offer
      properties:
        id:
          type: integer
        account_name:
          type:
            - string
            - 'null'
        account_number:
          type:
            - string
            - 'null'
        notice_balance:
          type: string
          example: '425.50'
        status:
          type:
            - integer
            - 'null'
        status_label:
          type:
            - string
            - 'null'
        reason_label:
          type:
            - string
            - 'null'
        file_path:
          type:
            - string
            - 'null'
          description: Stored notice photo path. Use `file_url` for display.
          example: notice-responses/123/notice.jpg
        file_url:
          type:
            - string
            - 'null'
          format: uri
          description: Display URL for the uploaded notice photo.
        has_notice_photo:
          type: boolean
        custom_offer:
          anyOf:
            - $ref: '#/components/schemas/NoticeResponseCustomOfferPayload'
            - type: 'null'
    ConsumerOfferOptionRow:
      type: object
      required:
        - value
        - label
      properties:
        value:
          type: string
        label:
          type: string
    NoticeResponseSender:
      type: object
      required:
        - id
        - type
        - company_name
      properties:
        id:
          type: integer
        type:
          type: string
          enum:
            - company
            - creditor_profile
        company_name:
          type: string
          example: Acme Collections
        company_phone:
          type:
            - string
            - 'null'
          example: (900) 509-1111
        company_email:
          type:
            - string
            - 'null'
          format: email
        company_address1:
          type:
            - string
            - 'null'
        company_address2:
          type:
            - string
            - 'null'
        company_city:
          type:
            - string
            - 'null'
        company_state:
          type:
            - string
            - 'null'
        company_zip:
          type:
            - string
            - 'null'
        company_url:
          type:
            - string
            - 'null'
    NoticeResponseCustomOfferPayload:
      type: object
      description: >-
        Submitted custom-offer payload stored on the notice response. Present
        after `POST /accounts/{consumer}/notice-response/custom-offer`.
      properties:
        negotiation_type:
          type: string
          enum:
            - pif
            - installment
        installment_type:
          type: string
          enum:
            - weekly
            - bimonthly
            - monthly
        amount:
          oneOf:
            - type: string
              example: '125.00'
            - type: number
              example: 125
        first_pay_date:
          type: string
          format: date
        reason:
          type: string
          nullable: true
        note:
          type: string
          nullable: true
  responses:
    Unauthenticated:
      description: Missing or invalid bearer token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MessageResponse'
    Forbidden:
      description: Authenticated consumer cannot access the resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MessageResponse'
    NotFound:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MessageResponse'
    NoticeResponseConflict:
      description: >-
        The authenticated profile is incomplete, or the requested
        notice-response step is not available for the current wizard state.
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/ProfileIncompleteResponse'
              - $ref: '#/components/schemas/NoticeResponseUnavailableResponse'
    ValidationError:
      description: Request validation failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Sanctum token

````