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

# Decodificar código QR

> Decodifica y extrae la información de pago de la cadena de un código QR Pix. Valida el formato, la estructura y el estado de vencimiento.



## OpenAPI

````yaml es/openapi/v3-current/pix.yaml POST /v1/qrcodes/decode
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/decode:
    post:
      tags:
        - QR Codes API
      summary: Decodificar código QR
      description: >-
        Decodifica y extrae la información de pago de la cadena de un código QR
        Pix. Valida el formato, la estructura y el estado de vencimiento.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DecodeQRCodeRequest'
      responses:
        '200':
          description: Código QR decodificado correctamente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DecodedQRCodeResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    DecodeQRCodeRequest:
      type: object
      required:
        - qrCode
        - accountId
      properties:
        qrCode:
          type: string
          description: Cadena del código QR Pix que se desea decodificar.
          example: 00020126580014br.gov.bcb.pix0136019c96a0-0c0c-7221-8cf3-13313fb60081
        accountId:
          type: string
          description: Identificador de la cuenta que solicita la decodificación.
          format: uuid
          example: 019c96a0-0a98-7287-9a31-786e0809c769
    DecodedQRCodeResponse:
      type: object
      required:
        - qrCodeType
        - endToEndId
        - amount
        - key
        - description
        - txId
        - payee
      properties:
        qrCodeType:
          $ref: '#/components/schemas/QRCodeTypeEnum'
        endToEndId:
          type: string
          description: Identificador de transacción de extremo a extremo.
          example: E1234567820230615123456789012345
        amount:
          type: number
          description: Monto del pago.
          format: double
          example: 100.5
        key:
          type: string
          description: Clave Pix del destinatario.
          example: '+5511987654321'
        description:
          type: string
          description: Descripción del pago.
          example: Pago por servicios
        txId:
          type: string
          description: Identificador único de la transacción.
          example: tx_abc123
        payee:
          $ref: '#/components/schemas/BankData'
    QRCodeTypeEnum:
      type: string
      description: >
        Tipo de código QR Pix. Valores en texto que indican el comportamiento y
        la reutilización del código QR.


        **Valores válidos:**

        - `STATIC` = Código QR reutilizable con monto fijo (puede escanearse
        varias veces)

        - `DYNAMIC` = Código QR de un solo uso con fecha de vencimiento y
        validación avanzada

        - `IMMEDIATE` = Código QR de pago inmediato para un solo uso
      enum:
        - STATIC
        - DYNAMIC
        - IMMEDIATE
      example: STATIC
    BankData:
      type: object
      description: Información de la cuenta bancaria.
      properties:
        accountId:
          type: string
          format: uuid
          description: Identificador de la cuenta.
          example: 019c96a0-0a98-7287-9a31-786e0809c769
        bankId:
          type: string
          pattern: ^\d{8}$
          description: Código ISPB del banco (8 dígitos).
          example: '12345678'
        document:
          type: string
          pattern: ^\d{11}$|^\d{14}$
          description: CPF (11 dígitos) o CNPJ (14 dígitos).
          example: '12345678901'
        name:
          type: string
          minLength: 1
          maxLength: 200
          description: Nombre del titular de la cuenta.
          example: João da Silva
        branch:
          type: string
          pattern: ^\d{4}$
          description: Código de la sucursal (4 dígitos).
          example: '0001'
        accountType:
          $ref: '#/components/schemas/AccountTypeEnum'
        bankAccountType:
          $ref: '#/components/schemas/AccountTypeEnum'
        accountNumber:
          type: string
          pattern: ^\d{1,13}$
          description: Número de cuenta (hasta 13 dígitos).
          example: '123456'
        accountDigit:
          type: string
          pattern: ^\d{1}$
          description: Dígito verificador de la cuenta (1 dígito).
          example: '7'
        key:
          type: string
          description: Clave Pix (teléfono, correo electrónico, CPF, CNPJ o EVP).
          example: '+5511987654321'
        keyType:
          $ref: '#/components/schemas/KeyTypeEnum'
      required:
        - bankId
        - document
        - name
        - branch
        - accountType
        - accountNumber
        - accountDigit
    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
    AccountTypeEnum:
      type: integer
      description: >
        Identificador del tipo de cuenta bancaria. Código numérico que indica el
        tipo de cuenta según los estándares bancarios brasileños.


        **Valores válidos:**

        - `0` = CURRENT_ACCOUNT (Cuenta corriente / Conta Corrente)

        - `1` = SALARY_ACCOUNT (Cuenta salario / Conta Salário)

        - `2` = SAVINGS_ACCOUNT (Cuenta de ahorros / Conta Poupança)

        - `3` = PAYMENT_ACCOUNT (Cuenta de pago / Conta de Pagamento)
      enum:
        - 0
        - 1
        - 2
        - 3
      x-enum-varnames:
        - CURRENT_ACCOUNT
        - SALARY_ACCOUNT
        - SAVINGS_ACCOUNT
        - PAYMENT_ACCOUNT
      example: 0
    KeyTypeEnum:
      type: integer
      description: >
        Identificador del tipo de clave Pix. Códigos numéricos que especifican
        el tipo de clave Pix utilizada.


        **Valores válidos:**

        - `0` = CPF (Identificación tributaria de persona física con 11 dígitos,
        p. ej., "12345678901")

        - `1` = CNPJ (Identificación tributaria de empresa con 14 dígitos, p.
        ej., "12345678000190")

        - `2` = EMAIL (Dirección de correo electrónico, p. ej.,
        "user@example.com")

        - `3` = PHONE (Número telefónico en formato internacional, p. ej.,
        "+5511987654321")

        - `4` = EVP (Clave aleatoria UUID generada automáticamente, p. ej.,
        "123e4567-e89b-12d3-a456-426614174000")
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
      x-enum-varnames:
        - CPF
        - CNPJ
        - EMAIL
        - PHONE
        - EVP
      example: 3
  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).

````