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

# 13 - QR Code - Billing

> <p>Scopes:</p>
<b>api.pix api.qrcode.criarcobranca</b>

Through this endpoint, the partner can generate a unique QR code for a given call, which will then be discarded according to the registered expiration date. Interest and fines may or may not be charged according to the parameterization.


## OpenAPI

````yaml post /api/v2/QRCode/Cobranca
openapi: 3.0.1
info:
  title: Api Externa BMP SPI
  description: '<p><strong>Build Number: </strong>#0.0</p>'
  version: v1
servers:
  - url: https://api.ext.pix.dbs.moneyp.com.br/
    description: Localhost
security:
  - Bearer: []
paths:
  /api/v2/QRCode/Cobranca:
    post:
      tags:
        - QRCode
      summary: Cria um QR Code de cobrança para pagamento através de Pix.
      description: "<p>Scopes:</p>\r\n<b>api.pix api.qrcode.criarcobranca</b>"
      parameters:
        - name: IdempotencyKey
          in: header
          required: true
          schema:
            type: string
        - name: IgnoraHandshake
          in: header
          description: (somente em homologação)
          required: true
          schema:
            type: boolean
            default: true
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/BMPSPB.Domain.Messaging.API.DICT.v2.QRCodeCobranca.QRCodeCobrancaRequest
          text/json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/BMPSPB.Domain.Messaging.API.DICT.v2.QRCodeCobranca.QRCodeCobrancaRequest
          application/*+json:
            schema:
              allOf:
                - $ref: >-
                    #/components/schemas/BMPSPB.Domain.Messaging.API.DICT.v2.QRCodeCobranca.QRCodeCobrancaRequest
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/BMPSPB.Domain.Messaging.API.DICT.v2.QRCodeCobranca.QRCodeCobrancaResponse
        '400':
          description: Erro de negócio
          content:
            application/json:
              schema:
                type: object
                properties:
                  sucesso:
                    type: boolean
                  mensagem:
                    type: string
        '500':
          description: Erro interno do servidor
          content:
            application/json:
              schema:
                type: object
                properties:
                  sucesso:
                    type: boolean
                  mensagem:
                    type: string
components:
  schemas:
    BMPSPB.Domain.Messaging.API.DICT.v2.QRCodeCobranca.QRCodeCobrancaRequest:
      type: object
      properties:
        contaDto:
          allOf:
            - $ref: >-
                #/components/schemas/BMPSPB.Domain.Messaging.API.Shared.Conta.ContaDto
          description: Objeto detalhado da conta bancária associada ao QR Code.*
          nullable: true
        qrCode:
          allOf:
            - $ref: >-
                #/components/schemas/BMPSPB.Domain.Messaging.API.DICT.v2.QRCodeCobranca.QRCodeCobranca
          description: >-
            Objeto detalhado de informações relacionadas ao QR Code de
            cobrança.*
          nullable: true
      additionalProperties: false
    BMPSPB.Domain.Messaging.API.DICT.v2.QRCodeCobranca.QRCodeCobrancaResponse:
      type: object
      properties:
        sucesso:
          type: boolean
        mensagem:
          type: string
          nullable: true
        qrCode:
          allOf:
            - $ref: >-
                #/components/schemas/BMPSPB.Domain.Messaging.API.DICT.v2.Base.QRCodeResponse
          nullable: true
      additionalProperties: false
    BMPSPB.Domain.Messaging.API.Shared.Conta.ContaDto:
      type: object
      properties:
        agencia:
          type: string
          description: |-
            Número da agência bancária.*

            Observações:
            - O número da agência pode ter no máximo 4 caracteres.
          nullable: true
        agenciaDigito:
          type: string
          description: >-
            Dígito verificador da agência bancária.


            Observações:

            - O dígito verificador da agência bancária pode ter no máximo 1
            caracter.
          nullable: true
        conta:
          type: string
          description: >-
            Número da conta bancária.


            Observações:

            - O número da conta bancária pode ter no máximo 12 caracteres.

            - Para que seja possível localizar a conta, é necessário informar o
            'número da conta com dígito' (```contaPgto```) ou o 'número da
            conta' (```conta```) e o 'dígito verificador' (```contaDigito```).

            - Caso o 'número da conta com dígito' (```contaPgto```) seja
            informado, não é necessário preencher os campos 'número da conta'
            (```conta```) e 'dígito verificador' (```contaDigito```).

            - Caso nenhum dos campos referentes ao número da conta seja
            informado, ocorrerá erro na requisição devido à falta de informação
            vital.
          nullable: true
        contaDigito:
          type: string
          description: >-
            Dígito verificador do número da conta bancária.


            Observações:

            - O dígito verificador do número da conta bancária pode ter no
            máximo 1 caracter.
          nullable: true
        contaPgto:
          type: string
          description: >-
            Número da conta bancária seguido do dígito verificador.


            Observações:

            - O número da conta seguido do dígito verificador pode ter no máximo
            20 caracteres.
          nullable: true
        tipoConta:
          allOf:
            - $ref: '#/components/schemas/BMPSPB.Infra.Enums.TipoConta'
          description: |-
            Tipo da conta.*

            Valores:
            1 - Corrente
            2 - Poupanca
            3 - Pagamento
            4 - Salario
          nullable: true
        modeloConta:
          allOf:
            - $ref: '#/components/schemas/BMPSPB.Infra.Enums.ModeloConta'
          description: |-
            Modelo da conta.*

            Valores:
            1 - Movimento
            2 - Escrow
            3 - Vinculada
          nullable: true
      additionalProperties: false
    BMPSPB.Domain.Messaging.API.DICT.v2.QRCodeCobranca.QRCodeCobranca:
      type: object
      properties:
        chave:
          type: string
          description: Chave Pix associada ao QR Code.*
          nullable: true
        tipoChave:
          allOf:
            - $ref: '#/components/schemas/BMPSPB.Infra.Enums.TipoChavePix'
          description: |-
            Tipo da chave.

             Valores:
            0 - CPF
            1 - CNPJ
            2 - TELEFONE
            3 - EMAIL
            4 - EVP
        taxId:
          type: string
          description: >-
            Identificação da transação (TXID).*


            Observações:

            - A 'identificação da transação (TXID)' (```taxId```) deve contar
            apenas letras e números.

            - A 'identificação da transação (TXID)' (```taxId```) não pode
            iniciar com BLHBDDA.

            - A 'identificação da transação (TXID)' (```taxid```) não pode ter
            sido utilizada em outro registro.
          nullable: true
        valor:
          type: number
          description: >-
            Valor total do pagamento a ser realizado


            Observação:

            - O 'valor total do pagamento' (```valor```) pode ter no máximo duas
            casas decimais.
          format: double
        devedor:
          allOf:
            - $ref: >-
                #/components/schemas/BMPSPB.Domain.Messaging.API.DICT.v2.Base.Devedor
          description: Objeto detalhado do devedor.
          nullable: true
        infosAdicionais:
          allOf:
            - $ref: >-
                #/components/schemas/BMPSPB.Domain.Messaging.API.DICT.v2.Base.InfoAdicionais
          description: >-
            Objeto detalhado de informações adicionais do QR Code.


            Observação:

            - Caso existam 'informações adicionais' (```infosAdicionais```), os
            campos 'descrição' (```nome```) e 'valor' (```valor```) devem estar
            preenchidos.
          nullable: true
        juros:
          allOf:
            - $ref: >-
                #/components/schemas/BMPSPB.Domain.Messaging.API.DICT.v2.Base.TaxaJuros
          description: Objeto detalhado de Juros aplicado ao QR Code.
          nullable: true
        multa:
          allOf:
            - $ref: >-
                #/components/schemas/BMPSPB.Domain.Messaging.API.DICT.v2.Base.TaxaMulta
          description: Objeto detalhado de Multa aplicado ao QR Code.
          nullable: true
        desconto:
          allOf:
            - $ref: >-
                #/components/schemas/BMPSPB.Domain.Messaging.API.DICT.v2.Base.TaxaDesconto
          description: Objeto detalhado de Desconto aplicado ao QR Code.
          nullable: true
        dataVencimento:
          type: string
          description: Data de Vencimento do QR Code.
          format: date-time
        dataExpiracao:
          type: string
          description: Data de Expiração do QR Code.
          format: date-time
        valorAbatimento:
          type: number
          description: Valor de abatimento ou desconto aplicado.
          format: double
      additionalProperties: false
    BMPSPB.Domain.Messaging.API.DICT.v2.Base.QRCodeResponse:
      type: object
      properties:
        codigoQRCode:
          type: string
          format: uuid
        emv:
          type: string
          nullable: true
        imagem:
          type: string
          nullable: true
      additionalProperties: false
    BMPSPB.Infra.Enums.TipoConta:
      enum:
        - 1
        - 2
        - 3
        - 4
      type: integer
      description: ''
      format: int32
    BMPSPB.Infra.Enums.ModeloConta:
      enum:
        - 1
        - 2
        - 3
      type: integer
      description: ''
      format: int32
    BMPSPB.Infra.Enums.TipoChavePix:
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
      type: integer
      description: ''
      format: int32
    BMPSPB.Domain.Messaging.API.DICT.v2.Base.Devedor:
      type: object
      properties:
        nome:
          type: string
          description: Nome completo do devedor.*
          nullable: true
        documentoFederal:
          type: string
          description: CPF ou CNPJ do devedor.*
          nullable: true
        tipoPessoa:
          allOf:
            - $ref: '#/components/schemas/BMPSPB.Infra.Enums.TipoPessoa'
          description: |-
            Tipo de pessoa.

             Valores:
            1 - Fisica
            2 - Juridica
      additionalProperties: false
    BMPSPB.Domain.Messaging.API.DICT.v2.Base.InfoAdicionais:
      type: object
      properties:
        nome:
          type: string
          description: Descrição das informações adicionais.
          nullable: true
        valor:
          type: string
          description: Valor das informações adicionais.
          nullable: true
      additionalProperties: false
    BMPSPB.Domain.Messaging.API.DICT.v2.Base.TaxaJuros:
      type: object
      properties:
        data:
          type: string
          description: >-
            Data de aplicação dos juros.


            Observação:

            - A 'data de aplicação dos juros' (```data```) deve ser posterior à
            'data de vencimento' (```dataVencimento```).
          format: date-time
          nullable: true
        tipo:
          allOf:
            - $ref: '#/components/schemas/BMPSPB.Infra.Enums.TipoJuros'
          description: |-
            Tipo de juros.*

             Valores:
            1 - Valor (dias corridos)
            2 - Percentual ao dia (dias corridos)
            3 - Percentual ao mês (dias corridos)
            5 - Isento
            6 - Valor (dia útil)
            8 - Percentual ao mês (dias úteis)
        valor:
          type: number
          description: >-
            Valor ou percentual aplicado de multa, dependendo da natureza de
            multa informada.
          format: double
      additionalProperties: false
    BMPSPB.Domain.Messaging.API.DICT.v2.Base.TaxaMulta:
      type: object
      properties:
        data:
          type: string
          description: >-
            Data de aplicação da multa.


            Observação:

            - A 'data de aplicação da multa' (```data```) deve ser posterior à
            'data de vencimento' (```dataVencimento```).
          format: date-time
          nullable: true
        tipo:
          allOf:
            - $ref: '#/components/schemas/BMPSPB.Infra.Enums.TipoMulta'
          description: |-
            Tipo de juros.*

             Valores:
            1 - Valor fixo
            2 - Percentual
            3 - Isenta
        valor:
          type: number
          description: >-
            Valor ou percentual aplicado de multa, dependendo da natureza de
            multa informada.
          format: double
      additionalProperties: false
    BMPSPB.Domain.Messaging.API.DICT.v2.Base.TaxaDesconto:
      type: object
      properties:
        data:
          type: string
          description: >-
            Data de aplicação do desconto.


            Observações:

            - A 'data de aplicação do desconto' (```data```) deve ser posterior
            à data atual.

            - A 'data de aplicação do desconto' (```data```) deve ser anterior à
            'data de vencimento' (```dataVencimento```).
          format: date-time
          nullable: true
        tipo:
          allOf:
            - $ref: '#/components/schemas/BMPSPB.Infra.Enums.TipoDesconto'
          description: |-
            Tipo de desconto.*

             Valores:
            0 - Isento
            1 - Valor fixo até a data informada
            2 - Percentual até a data informada
            3 - Valor por antecipação (dias corridos)
            4 - Valor por antecipação (dias úteis)
            5 - Percentual por antecipação (dias corridos)
            6 - Percentual por antecipação (dias úteis)
            7 - Cancelamento Desconto
        valor:
          type: number
          description: >-
            Valor ou percentual aplicado de desconto, dependendo da natureza do
            desconto informada.


            Observação:

            - Caso a 'natureza do desconto' (```tipo```) seja por valor, este
            não pode ser maior ou igual ao 'valor total do pagamento a ser
            realizado' (```valor```).
          format: double
      additionalProperties: false
    BMPSPB.Infra.Enums.TipoPessoa:
      enum:
        - 1
        - 2
      type: integer
      description: ''
      format: int32
    BMPSPB.Infra.Enums.TipoJuros:
      enum:
        - 1
        - 2
        - 3
        - 5
        - 6
        - 8
      type: integer
      description: ''
      format: int32
    BMPSPB.Infra.Enums.TipoMulta:
      enum:
        - 1
        - 2
        - 3
      type: integer
      description: ''
      format: int32
    BMPSPB.Infra.Enums.TipoDesconto:
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
      type: integer
      description: ''
      format: int32
  securitySchemes:
    Bearer:
      type: apiKey
      description: Copie 'Bearer ' + token
      name: Authorization
      in: header

````