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

# Consultar PDF do boleto

> Consulta o PDF do boleto gerado em background. Consulte de novo até `status` ser `ready`. Quando `status` é `pending`, o header `Retry-After` traz o intervalo em segundos. Quando `ready`, `url` é uma URL assinada (3600 s). Limite: 30 requests por minuto por IP.

Quando `status` é `pending`, o header `Retry-After` traz o intervalo em segundos. Consulte de novo depois desse intervalo.

O endpoint aceita 30 requests por minuto por IP. Acima disso a API retorna `429` com `Retry-After`.


## OpenAPI

````yaml GET /v1/payments/{id}/boleto
openapi: 3.0.0
info:
  title: UvviPay Public API
  description: >-
    Endpoints públicos da plataforma UvviPay para integração de subcontas
    (submerchants).
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.uvvipay.com.br
    description: Produção
  - url: https://api-staging.uvvipay.com.br
    description: Staging
security:
  - client-id: []
    client-secret: []
tags: []
paths:
  /v1/payments/{id}/boleto:
    get:
      tags:
        - Pagamentos
      summary: Consultar PDF do boleto
      description: >-
        Consulta o PDF do boleto gerado em background. Consulte de novo até
        `status` ser `ready`. Quando `status` é `pending`, o header
        `Retry-After` traz o intervalo em segundos. Quando `ready`, `url` é uma
        URL assinada (3600 s). Limite: 30 requests por minuto por IP.
      operationId: getBoletoPdf
      parameters:
        - name: client-secret
          in: header
          description: Secret da credencial do merchant
          required: true
          schema:
            type: string
        - name: client-id
          in: header
          description: ID público da credencial do merchant
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          description: ID único da transação
          schema:
            type: string
            example: 550e8400-e29b-41d4-a716-446655440000
      responses:
        '200':
          description: >-
            Estado da geração do PDF. Header `Retry-After` presente quando
            `status` é `pending`.
          headers:
            Retry-After:
              description: >-
                Segundos até o próximo poll. Presente quando `status` é
                `pending`.
              schema:
                type: integer
                example: 2
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoletoPdfResponseDto'
        '401':
          description: Credenciais inválidas ou ausentes
        '404':
          description: Pagamento não encontrado ou de outro merchant
        '422':
          description: O pagamento não é boleto
        '429':
          description: >-
            Limite de 30 requests por minuto por IP excedido. Header
            `Retry-After` indica a espera.
components:
  schemas:
    BoletoPdfResponseDto:
      type: object
      properties:
        status:
          type: string
          enum:
            - pending
            - ready
            - failed
          description: Estado da geração assíncrona do PDF
          example: ready
        url:
          type: string
          description: >-
            URL assinada do PDF. Presente apenas quando `status` é `ready`.
            Expira em 3600 s.
          example: >-
            https://storage.example/boletos/d398b016-3c29-41b4-afc0-bbf8c81c683c.pdf?X-Amz-Expires=3600
      required:
        - status
  securitySchemes:
    client-id:
      type: apiKey
      in: header
      name: client-id
    client-secret:
      type: apiKey
      in: header
      name: client-secret

````