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

# Crear código QR dinámico

> Genera un código QR Pix dinámico y de uso único con funciones avanzadas como vencimiento, validación del pagador e información adicional de pago. Ideal para facturación y pagos controlados.



## OpenAPI

````yaml es/openapi/v3-current/pix.yaml POST /v1/qrcodes/dynamic
openapi: 3.0.3
info:
  title: Plugin BR Pix Directo - API completa
  description: >
    API completa para el sistema de pagos instantáneos Pix de Brasil,

    que incluye operaciones del diccionario de claves Pix,
    generación/decodificación

    de códigos QR, transacciones y límites transaccionales.
  version: 1.0.0
servers:
  - url: https://plugin-pix-direct.api.lerian.net
  - url: https://plugin-pix-direct-qrcode.api.lerian.net
security:
  - bearerAuth: []
paths:
  /v1/qrcodes/dynamic:
    post:
      tags:
        - QR Codes API
      summary: Crear código QR dinámico
      description: >-
        Genera un código QR Pix dinámico y de uso único con funciones avanzadas
        como vencimiento, validación del pagador e información adicional de
        pago. Ideal para facturación y pagos controlados.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDynamicQRCodeRequest'
      responses:
        '200':
          description: Código QR dinámico creado correctamente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QRCodeResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    CreateDynamicQRCodeRequest:
      type: object
      required:
        - type
        - key
        - amount
        - recipientName
        - payer
        - dueDate
        - expirationTime
        - city
        - zipCode
        - recipientConciliationId
        - partnerId
        - description
      properties:
        type:
          type: string
          description: Tipo de código QR. En este caso, IMMEDIATE.
          enum:
            - IMMEDIATE
          example: IMMEDIATE
        key:
          type: string
          description: Clave Pix del destinatario.
          example: '12345678901'
        amount:
          type: number
          description: Monto para el código QR dinámico.
          format: double
          example: 50
        recipientName:
          type: string
          description: Nombre del destinatario (beneficiario).
          example: João da Silva
        payer:
          type: object
          description: Información del pagador.
          required:
            - document
            - validate
            - name
          properties:
            document:
              type: string
              description: CPF (11 dígitos) o CNPJ (14 dígitos) del pagador.
              example: '98765432100'
            validate:
              type: boolean
              description: Indica si debe validarse la clave del pagador.
              example: true
            name:
              type: string
              description: Nombre del pagador.
              example: Maria Santos
        dueDate:
          type: string
          description: Fecha de vencimiento del pago (YYYY-MM-DD).
          format: date
          example: '2024-12-31'
        expirationTime:
          type: integer
          description: >-
            Tiempo de expiración en segundos tras el cual el código QR deja de
            ser válido.
          example: 3600
        city:
          type: string
          description: Ciudad del destinatario.
          example: São Paulo
        zipCode:
          type: string
          description: Código postal del destinatario (8 dígitos).
          example: '01234567'
        recipientConciliationId:
          type: string
          description: Identificador para la conciliación del destinatario.
          example: CONC123456789
        partnerId:
          type: string
          description: Identificador del sistema asociado.
          format: uuid
          example: 019c96a0-0c0c-7221-8cf3-13313fb60081
        description:
          type: array
          description: Lista de descripciones para el pago.
          items:
            type: object
            required:
              - name
              - value
            properties:
              name:
                type: string
                description: Nombre de la descripción.
                example: Invoice
              value:
                type: string
                description: Valor de la descripción.
                example: INV-001
    QRCodeResponse:
      type: object
      required:
        - qrCode
      properties:
        qrCode:
          type: string
          description: Cadena del código QR Pix generado.
          example: >-
            00020101021226850014br.gov.bcb.pix2563qrcode.example.com.br/v2/cobv/9d36b84fc70b478fb95c12729b90ca255204000053039865802BR5913Merchant
            Name6009Sao Paulo62070503***63042C43
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          description: Código de error
        message:
          type: string
          description: Mensaje de error
        details:
          type: array
          items:
            type: string
          description: Detalles adicionales del error
  responses:
    BadRequest:
      description: Solicitud Incorrecta - Parámetros inválidos
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            invalid_key_type:
              summary: Invalid key type
              value:
                code: INVALID_KEY_TYPE
                message: Key type must be between 0 and 4
                details:
                  - 'keyType: must be one of [0, 1, 2, 3, 4]'
            missing_required_field:
              summary: Missing required field
              value:
                code: VALIDATION_ERROR
                message: Required field is missing
                details:
                  - 'accountId: field is required'
            invalid_document_format:
              summary: Invalid document format
              value:
                code: INVALID_DOCUMENT
                message: Document must be valid CPF (11 digits) or CNPJ (14 digits)
                details:
                  - 'document: must match pattern ^\d{11}$|^\d{14}$'
            invalid_phone_format:
              summary: Invalid phone format
              value:
                code: INVALID_PHONE
                message: Phone must be in Brazilian format
                details:
                  - 'phone: must match pattern ^\+55\d{2}\d{8,9}$'
    Unauthorized:
      description: No Autorizado - Autenticación inválida o ausente
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            missing_token:
              summary: Missing authentication token
              value:
                code: MISSING_TOKEN
                message: Authorization header is required
                details: []
            invalid_token:
              summary: Invalid token
              value:
                code: INVALID_TOKEN
                message: Invalid or expired access token
                details: []
            expired_token:
              summary: Expired token
              value:
                code: TOKEN_EXPIRED
                message: Access token has expired. Please obtain a new token.
                details: []
    InternalServerError:
      description: Error Interno del Servidor
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            generic_error:
              summary: Generic internal error
              value:
                code: INTERNAL_ERROR
                message: An internal error occurred. Please try again later.
                details: []
            database_error:
              summary: Database error
              value:
                code: DATABASE_ERROR
                message: Database operation failed
                details: []
            external_service_error:
              summary: External service error
              value:
                code: EXTERNAL_SERVICE_ERROR
                message: External service (JD PIX) is temporarily unavailable
                details: []
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Autenticación con token JWT Bearer. Obtén el token desde el endpoint
        `/v1/login/oauth/access_token`

        usando credenciales de cliente (`clientId` y `clientSecret`).


        Incluye el token en el encabezado Authorization:

        `Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...`


        El token expira después de 3600 segundos (1 hora).

````