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

# Set quote signers

> Replace the signature circuit of a quote with several signers on the customer side and optional countersigners, signing step by step.



## OpenAPI

````yaml put /v1/quotes/{id}/signers
openapi: 3.1.0
info:
  title: Hyperline API
  version: 0.0.0
servers:
  - url: https://api.hyperline.co
  - url: https://sandbox.api.hyperline.co
security: []
paths:
  /v1/quotes/{id}/signers:
    put:
      tags:
        - Quotes
      summary: Set quote signers
      description: >-
        Replace the signature circuit of a quote with several signers on the
        customer side and optional countersigners, signing step by step.
      operationId: setQuoteSigners
      parameters:
        - schema:
            type: string
          required: true
          name: id
          in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetQuoteSigners'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/QuoteSigner'
        '404':
          description: Quote not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
      security:
        - bearer: []
components:
  schemas:
    SetQuoteSigners:
      type: object
      properties:
        signers:
          type: array
          items:
            $ref: '#/components/schemas/SetQuoteSigner'
          maxItems: 50
          description: >

            Signature circuit of the quote, replaced as a whole.


            Signers sign step by step, in ascending `step_order`. Signers
            sharing a step sign in parallel, and the next step opens once all of
            them have signed. The circuit needs at least one `external` signer,
            and a `countersigner` must sign after the first external step.


            Signers who already signed cannot be removed or moved. Once the
            quote is out for signature at an electronic signature provider, the
            circuit can no longer be changed.
      required:
        - signers
    QuoteSigner:
      type: object
      properties:
        id:
          type: string
          description: Quote signer ID.
          example: quor_4XyQhGd8P3CYaX
        kind:
          type: string
          enum:
            - external
            - countersigner
          description: >

            Signer kind.


            - `external`: A signer on the customer side.

            - `countersigner`: A signer on your side, who signs after the
            customer.
          example: external
        step_order:
          type: integer
          description: >-
            Position of the signer in the signature circuit, starting at 1.
            Signers with the same step order sign in parallel.
          example: 1
        user_id:
          type:
            - string
            - 'null'
          description: >-
            ID of the Hyperline user acting as the countersigner. Only allowed
            on a `countersigner`; their email and name are then taken from the
            user.
          example: null
        email:
          type: string
          format: email
          description: Email address of the signer.
          example: jane@customer.com
        first_name:
          type:
            - string
            - 'null'
          description: >-
            First name of the signer. Required by electronic signature
            providers.
          example: Jane
        last_name:
          type:
            - string
            - 'null'
          description: Last name of the signer. Required by electronic signature providers.
          example: Doe
        language:
          type:
            - string
            - 'null'
          enum:
            - fr
            - en
            - de
            - it
            - lt
            - nl
            - es
            - pt
            - pl
          description: >-
            Language of the emails and signature page sent to the signer.
            Defaults to the customer language.
          example: en
        status:
          type: string
          enum:
            - pending
            - notified
            - viewed
            - signed
            - declined
          description: |

            Signer status.

            - `pending`: Not notified yet.
            - `notified`: The signer received the quote by email.
            - `viewed`: The signer opened the quote.
            - `signed`: The signer signed the quote.
            - `declined`: The signer declined the quote.
          example: notified
        notified_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date the signer was last notified. UTC date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-04-24T09:12:00.000Z'
        viewed_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date the signer first opened the quote. UTC date time string in the
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: null
        signed_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date the signer signed the quote. UTC date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: null
        declined_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date the signer declined the quote. UTC date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: null
        decline_reason:
          type:
            - string
            - 'null'
          description: Reason given by the signer when declining the quote.
          example: null
        created_at:
          type: string
          format: date-time
          description: >-
            Signer creation date. UTC date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-04-24T09:10:00.220Z'
        updated_at:
          type: string
          format: date-time
          description: >-
            Signer last update date. UTC date time string in the [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601) format.
          example: '2024-04-24T09:12:00.000Z'
      required:
        - id
        - kind
        - step_order
        - user_id
        - email
        - first_name
        - last_name
        - language
        - status
        - notified_at
        - viewed_at
        - signed_at
        - declined_at
        - decline_reason
        - created_at
        - updated_at
    SetQuoteSigner:
      type: object
      properties:
        kind:
          type: string
          enum:
            - external
            - countersigner
          description: >

            Signer kind.


            - `external`: A signer on the customer side.

            - `countersigner`: A signer on your side, who signs after the
            customer.
          example: external
        step_order:
          type: integer
          minimum: 1
          maximum: 100
          description: >-
            Position of the signer in the signature circuit, starting at 1.
            Signers with the same step order sign in parallel.
          example: 1
        user_id:
          type: string
          description: >-
            ID of the Hyperline user acting as the countersigner. Only allowed
            on a `countersigner`; their email and name are then taken from the
            user.
          example: usr_Dz3fLqW8XyP0Ab
        email:
          type: string
          format: email
          description: Email address of the signer.
          example: jane@customer.com
        first_name:
          type: string
          minLength: 1
          description: >-
            First name of the signer. Required by electronic signature
            providers.
          example: Jane
        last_name:
          type: string
          minLength: 1
          description: Last name of the signer. Required by electronic signature providers.
          example: Doe
        language:
          type: string
          enum:
            - fr
            - en
            - de
            - it
            - lt
            - nl
            - es
            - pt
            - pl
          description: >-
            Language of the emails and signature page sent to the signer.
            Defaults to the customer language.
          example: en
      required:
        - kind
        - step_order
        - email
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.