> ## Documentation Index
> Fetch the complete documentation index at: https://bmpmoneyplus-sandbox.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 11 - Electronic

Through this endpoint, the partner will be directed to our environment to sign the proposal.

* In this context, the inclusion of proposal signatories is permitted.
* The standard procedure determines that the proposal can only be finalized if all registered signatories have signed the proposal. Therefore, according to the prominent ones, the auxiliary system will control the signatures of each individual.
* The signatories who receive the notification by email will have access to the proposal to sign it and will also be able to manage pending signatures, as long as they are parameterized for this, and can notify the signatories.
* The method requires the authentication and location parameters of the proposal, as well as a list of signatories.

### Messaging

<Expandable title="Messaging - CCB Signing Proposal">
  | Categoria | Operação              | Ação                 | Código | Código Detalhado | Mensagem                                                                                                                     |
  | --------- | --------------------- | -------------------- | ------ | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | C0060  | V0001            | Não foram enviados assinantes para esta proposta                                                                             |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | C0060  | V0002            | Não é possível incluir assinantes na proposta. Proposta encontra-se " + SituacaoPropostaEnum.GetDescricao(proposta.Situacao) |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | C0060  | V0003            | Não é possível incluir assinantes, proposta deve estar aprovada                                                              |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | C0060  | V0004            | Notificação por E-mail não parametrizado                                                                                     |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | C0060  | V0005            | Notificação por WhatsApp não parametrizado                                                                                   |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | C0060  | V0006            | O telefone + Telefone + possui restrição de envio de mensagem através do WhatsApp                                            |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | C0112  | V0001            | Proposta não encontrada                                                                                                      |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | C0112  | V0002            | A Proposta não pertence à esta Integração                                                                                    |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | T0668  | D0001            | E-mail {Email} inválido                                                                                                      |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | T0668  | D0002            | Proposta não encontrada                                                                                                      |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | T0668  | D0003            | Nome deve ser informado                                                                                                      |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | T0668  | D0004            | Documento deve ser informado `[{Nome}]`, "Documento                                                                          |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | T0668  | D0005            | E-mail deve ser informado `[{Nome}]`", "Email                                                                                |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | T0668  | D0006            | E-mail inválido `[{Nome}]`                                                                                                   |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | T0668  | D0007            | Telefone Celular deve ser informado `[{Nome}]`", "TelefoneCelular                                                            |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | T0668  | D0008            | Telefone Celular deve conter 11 dígitos. Exemplo: (11) 9 9999-9999", "TelefoneCelular                                        |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | T0668  | D0009            | O celular deve ter 11 dígitos. Ex: (XX) XXXXX-XXXX", "TelefoneCelular                                                        |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | T0668  | D0010            | O número do celular deve iniciar com os dígitos 6,7,8 ou 9", "TelefoneCelular                                                |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | T0668  | D0011            | O celular deve ter 11 dígitos. Ex: (XX) XXXXX-XXXX                                                                           |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | T0668  | D0012            | ERR01 - Já existe assinante com este nome e papel                                                                            |
  | Proposta  | PropostaAssinaturaCCB | IncluirAssinaturaCCB | T0668  | D0013            | ERR02 - Já existe assinante com este e-mail ou telefone celular                                                              |
</Expandable>


## OpenAPI

````yaml post /Proposta/IncluirAssinaturaCCB
openapi: 3.0.1
info:
  title: BMPDigitalCore.ApiExterna.Proposta.API
  version: '1.0'
servers:
  - url: https://api.bmpdigital.moneyp.dev.br/
    description: Localhost
security:
  - Bearer: []
paths:
  /Proposta/IncluirAssinaturaCCB:
    post:
      tags:
        - Proposta
      parameters:
        - name: IdempotencyKey
          in: header
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PropostaAssinaturaCCBCommand'
          text/json:
            schema:
              $ref: '#/components/schemas/PropostaAssinaturaCCBCommand'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PropostaAssinaturaCCBCommand'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ActionResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ActionResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ActionResponse'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResponseBase'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBase'
            text/json:
              schema:
                $ref: '#/components/schemas/ResponseBase'
components:
  schemas:
    PropostaAssinaturaCCBCommand:
      type: object
      properties:
        dto:
          $ref: '#/components/schemas/FindPropostaDTO'
        assinantes:
          type: array
          items:
            $ref: '#/components/schemas/AssinanteDTO'
          nullable: true
      additionalProperties: false
    ActionResponse:
      type: object
      properties:
        msg:
          type: string
          nullable: true
        result:
          type: boolean
          writeOnly: true
        hasError:
          type: boolean
        messages:
          type: array
          items:
            $ref: '#/components/schemas/Message'
          nullable: true
        parametros:
          type: array
          items:
            $ref: '#/components/schemas/ParametroDTO'
          nullable: true
      additionalProperties: false
    ResponseBase:
      type: object
      properties:
        msg:
          type: string
          nullable: true
        result:
          type: boolean
          writeOnly: true
        hasError:
          type: boolean
        messages:
          type: array
          items:
            $ref: '#/components/schemas/Message'
          nullable: true
      additionalProperties: false
    FindPropostaDTO:
      type: object
      properties:
        codigoProposta:
          type: string
          description: Código identificador da proposta
          format: uuid
          nullable: true
        codigoOperacao:
          type: string
          description: Código da operação do parceiro
          nullable: true
        numeroProposta:
          type: integer
          description: Número sequencial da proposta
          format: int64
          nullable: true
      additionalProperties: false
    AssinanteDTO:
      type: object
      properties:
        nome:
          type: string
          description: Nome do assinante
          nullable: true
        email:
          type: string
          description: Email do assinante
          nullable: true
        documento:
          type: string
          description: Documento federal do assinante
          nullable: true
        descricao:
          type: string
          description: Descrição
          nullable: true
        telefoneCelular:
          type: string
          description: Telefone celular do assinante
          nullable: true
        notificarPorEmail:
          type: boolean
          description: Informar se o assinante deve ser notificado por email
        notificarPorWhatsApp:
          type: boolean
          description: Informar se o assinante deve ser notificado por WhatsApp
        notificarPorSMS:
          type: boolean
          description: Informar se o assinante deve ser notificado por SMS
        codigoIdentificador:
          type: string
          description: Codigo identificador
          nullable: true
        dtLimiteAssinatura:
          type: string
          description: Data limite para a assinatura
          format: date-time
          nullable: true
      additionalProperties: false
    Message:
      type: object
      properties:
        messageType:
          $ref: '#/components/schemas/ErrorType'
        code:
          type: string
          nullable: true
        context:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        field:
          type: string
          nullable: true
      additionalProperties: false
    ParametroDTO:
      type: object
      properties:
        nome:
          type: string
          description: Refere-se ao nome do parâmetro.
          nullable: true
        valor:
          type: string
          description: Refere-se ao valor do parâmetro.
          nullable: true
      additionalProperties: false
    ErrorType:
      enum:
        - 1
        - 2
        - 3
      type: integer
      format: int32
  securitySchemes:
    Bearer:
      type: apiKey
      description: Informe o token
      name: Authorization
      in: header

````