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

# Consultar o saldo

> Devolve o saldo de envios da organização da credencial.




## OpenAPI

````yaml /api-reference/openapi.yaml get /usage
openapi: 3.1.0
info:
  title: API do Pombo.Digital
  version: 1.0.0
  description: >
    Envie notificações extrajudiciais certificadas por WhatsApp ou e-mail,
    acompanhe a entrega e baixe o laudo com carimbo do tempo ICP-Brasil.


    A credencial identifica a organização por si só: `organization_id` não é
    aceito em nenhuma requisição desta API.
servers:
  - url: https://pombo.digital/api/integrations/v1
    description: Produção
security:
  - bearerAuth: []
tags:
  - name: Notificações
    description: >-
      Criar uma notificação extrajudicial, acompanhar a entrega e baixar o
      laudo.
  - name: Modelos
    description: >-
      Modelos de mensagem. Um envio de WhatsApp exige um modelo aprovado pela
      Meta.
  - name: Saldo
    description: O saldo de envios da organização.
paths:
  /usage:
    get:
      tags:
        - Saldo
      summary: Consultar o saldo
      description: |
        Devolve o saldo de envios da organização da credencial.
      operationId: getUsage
      responses:
        '200':
          description: O saldo.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Usage'
              examples:
                com_saldo:
                  summary: Organização com saldo de envios
                  value:
                    credits:
                      available: 1240
                      pending: 10
                sem_saldo_a_informar:
                  summary: Organização cobrada pelo consumo
                  value:
                    credits: null
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    Usage:
      type: object
      required:
        - credits
      properties:
        credits:
          oneOf:
            - $ref: '#/components/schemas/Credits'
            - type: 'null'
          description: >
            O saldo de envios, ou `null` quando a organização é cobrada pelo
            consumo e por isso não tem saldo a informar.


            `null` não é saldo zero: uma organização nesse modelo continua
            enviando normalmente.
    Credits:
      type: object
      description: O saldo de envios da organização.
      required:
        - available
        - pending
      properties:
        available:
          type: integer
          description: >
            Os envios disponíveis agora. É o saldo total menos o que está
            reservado em `pending`, e é este número que o envio consome.
          examples:
            - 1240
        pending:
          type: integer
          description: >
            Os envios já reservados por notificações que começaram e ainda não
            foram confirmadas. A reserva é devolvida quando a entrega se
            resolve.
          examples:
            - 10
    Error:
      type: object
      description: >
        O envelope de erro, com quatro campos.


        **Ramifique pelo status HTTP e por `error_code`. Nunca por `code`.** O
        `code` vale `10000 + http_code` em um caminho e uma string arbitrária em
        outro, então não acrescenta nada ao status e muda de tipo entre
        operações vizinhas.
      required:
        - message
      properties:
        code:
          description: >
            **Não ramifique por este campo.** O tipo muda entre operações
            vizinhas: um `404` de modelo traz `10404` e um `404` de notificação
            traz `"NOT_FOUND"`. Para tratar erros em código, use o status HTTP.
          oneOf:
            - title: Número, na validação genérica
              type: integer
              description: >-
                `10000 + http_code`. Um `400` genérico traz `10400`, um `404`
                traz `10404`.
              examples:
                - 10400
            - title: Texto, nos erros específicos
              type: string
              description: Um identificador do erro, como os listados em Erros.
              examples:
                - IDEMPOTENCY_KEY_REUSED
        http_code:
          type: integer
          description: >
            **Opcional.** O status HTTP repetido no corpo. Presente quando o
            erro é devolvido diretamente, ausente quando é lançado e tratado
            pelo tratador geral. Nunca exija este campo no cliente.
        message:
          type: string
          description: >-
            Descrição da falha, para diagnóstico. Em inglês ou em português. Não
            é estável.
        error_code:
          type: string
          enum:
            - MISSING_REQUIRED_FIELD
            - INVALID_SENDER
            - ORGANIZATION_ID_FORBIDDEN
            - INVALID_RECIPIENT
            - TEMPLATE_CONSTANT_FORBIDDEN
            - FILE_TRANSFER_NOT_AVAILABLE_ON_THIS_LANE
            - IDEMPOTENCY_KEY_REUSED
          description: >
            O campo a usar para ramificar. **Opcional na prática:** alguns `400`
            igualmente específicos não o trazem, como o de
            `recipient_tax_id_type` fora do enum e o de `Idempotency-Key` mal
            formado. Quando estiver ausente, use o status HTTP.
    InternalError:
      type: object
      description: O corpo do `500` é reduzido e **não** traz `http_code`.
      properties:
        code:
          type: string
          examples:
            - INTERNAL_ERROR
        message:
          type: string
          examples:
            - Internal Server Error
        request_id:
          type: string
          description: >
            O mesmo valor do cabeçalho `x-request-id`. **Registre-o:** é por ele
            que o suporte encontra a requisição exata.
          examples:
            - req_01M1C5ZKGBGRNW6QHXTP2EM7Y7
  responses:
    Unauthorized:
      description: >
        Credencial ausente, inválida ou revogada. A resposta é **idêntica** nos
        três casos: o Pombo não informa qual deles ocorreu, para que não se
        possa descobrir por tentativa quais credenciais já existiram.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            invalida:
              summary: Credencial não aceita
              value:
                code: 10401
                http_code: 401
                message: Invalid API key
    TooManyRequests:
      description: >
        Limite de requisições excedido. São três contagens independentes, em
        janelas de um minuto: 50 por credencial, 200 por organização, 300 por
        IP.


        **Espere o que o `Retry-After` manda esperar**, em segundos. Os
        cabeçalhos `RateLimit-Limit`, `RateLimit-Remaining` e `RateLimit-Reset`
        vêm em toda resposta, não só no `429`.
      headers:
        Retry-After:
          description: Quantos segundos esperar antes de repetir.
          schema:
            type: integer
            examples:
              - 43
        RateLimit-Limit:
          description: O teto da janela.
          schema:
            type: integer
            examples:
              - 200
        RateLimit-Remaining:
          description: Quantas requisições ainda cabem na janela.
          schema:
            type: integer
            examples:
              - 0
        RateLimit-Reset:
          description: Quantos segundos faltam para a janela virar.
          schema:
            type: integer
            examples:
              - 43
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            limite:
              summary: Limite excedido
              value:
                code: RATE_LIMIT_EXCEEDED
                http_code: 429
                message: Too many requests. Please try again later.
    InternalError:
      description: >
        Erro interno. Em `POST /notifications`, um `500` **não garante que nada
        foi enviado**: consulte antes de repetir.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalError'
          examples:
            interno:
              summary: Erro interno
              value:
                code: INTERNAL_ERROR
                message: Internal Server Error
                request_id: req_01M1C5ZKGBGRNW6QHXTP2EM7Y7
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        Sua credencial de API no cabeçalho `Authorization: Bearer sk_live_...`.
        Crie e revogue credenciais no painel, em Conta → API Keys. O segredo
        aparece uma única vez, na criação.


        A credencial identifica a organização: `organization_id` não é aceito em
        nenhuma requisição.

````