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

# Queue import

> Finalize one unconsumed upload session after the frontend uploads the CSV to S3. The API verifies ownership, expiry, object existence, CSV extension, size, first row readability, and exact header match before queueing import jobs.



## OpenAPI

````yaml /api/creditor.openapi.yaml post /import-consumers
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:
  /import-consumers:
    post:
      tags:
        - Import / Export
      summary: Queue import
      description: >-
        Finalize one unconsumed upload session after the frontend uploads the
        CSV to S3. The API verifies ownership, expiry, object existence, CSV
        extension, size, first row readability, and exact header match before
        queueing import jobs.
      operationId: creditorQueueImportConsumers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueueImportConsumersRequest'
            example:
              upload_id: 123
              header_id: 45
              import_type: add
              update_fields:
                - email1
                - mobile1
      responses:
        '201':
          description: Import queued.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileUploadHistoryMutationResponse'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/ActiveMembershipRequired'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/ValidationError'
      security:
        - bearerAuth: []
components:
  schemas:
    QueueImportConsumersRequest:
      type: object
      required:
        - upload_id
        - header_id
        - import_type
      properties:
        upload_id:
          type: integer
        header_id:
          type: integer
        import_type:
          type: string
          enum:
            - add
            - add_account_with_create_cfpb
            - update
            - delete
        update_fields:
          type: array
          nullable: true
          description: >-
            Required for update imports. `pay_term_offers` expands to all four
            individual pay-term columns.
          items:
            type: string
            enum:
              - email1
              - mobile1
              - current_balance
              - expiry_date
              - pay_term_offers
    FileUploadHistoryMutationResponse:
      type: object
      required:
        - message
        - data
      properties:
        message:
          type: string
          example: Import queued.
        data:
          $ref: '#/components/schemas/FileUploadHistory'
    FileUploadHistory:
      type: object
      additionalProperties: true
      properties:
        id:
          type: integer
        filename:
          type: string
        failed_filename:
          type: string
          nullable: true
        file_size_bytes:
          type: integer
          nullable: true
        type:
          type: string
          enum:
            - add
            - add_account_with_create_cfpb
            - update
            - delete
        type_label:
          type: string
          nullable: true
        type_short_label:
          type: string
          nullable: true
        status:
          type: string
          enum:
            - validating
            - complete
            - failed
        status_label:
          type: string
          nullable: true
        update_fields:
          type: array
          nullable: true
          items:
            type: string
        total_records:
          type: integer
        remaining_quota:
          type: integer
          nullable: true
        processed_count:
          type: integer
        failed_count:
          type: integer
        progress:
          $ref: '#/components/schemas/FileUploadHistoryProgress'
        is_sftp_import:
          type: boolean
        is_hidden:
          type: boolean
        processing_started_at:
          type: string
          format: date-time
          nullable: true
        processing_completed_at:
          type: string
          format: date-time
          nullable: true
        processing_duration_seconds:
          type: integer
          nullable: true
        is_long_running:
          type: boolean
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          nullable: true
    MessageResponse:
      type: object
      required:
        - message
      properties:
        message:
          type: string
    ValidationErrorResponse:
      type: object
      required:
        - message
        - errors
      properties:
        message:
          type: string
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
    FileUploadHistoryProgress:
      type: object
      properties:
        processed_count:
          type: integer
        failed_count:
          type: integer
        total_chunks:
          type: integer
        completed_chunks:
          type: integer
        failed_chunks:
          type: integer
  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'
    Conflict:
      description: >-
        Resource state conflict, such as an expired or already consumed upload
        session.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MessageResponse'
    ValidationError:
      description: Request validation failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Sanctum token

````