> ## Documentation Index
> Fetch the complete documentation index at: https://rain-sandbox-trial.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a user's points balance

> Returns a user's Raindrops balance. Response shape depends on the tenant points mode: `RAIN_MANAGED` returns the full balance breakdown; `PARTNER_OFFCHAIN` returns only `availablePoints` from Rain's off-chain ledger; `PARTNER_ONCHAIN` returns `405` because the partner is canonical for user balances.



## OpenAPI

````yaml /openapi.json get /issuing/raindrops/balance
openapi: 3.0.3
info:
  title: Issuing API
  description: This is the specification for Rain's Issuing API.
  termsOfService: https://www.rain.xyz/legal/authorized-user-terms
  contact:
    email: support@rain.xyz
  version: 1.3.0
servers:
  - url: https://api-dev.rain.xyz/v1
    description: Sandbox server
  - url: https://api.rain.xyz/v1
    description: Production server
security: []
tags:
  - name: paymentRoutes
    description: >-
      **Endpoint Migration:** The `/v1/automations` endpoints have been renamed
      to `/v1/payment-routes`. The old `/v1/automations` paths remain available
      as deprecated aliases during migration. Update your integrations to use
      `/v1/payment-routes` as the deprecated endpoints will be removed in a
      future release.
  - name: simulate
    description: >-
      Transaction simulation endpoints for testing integration flows in
      non-production environments. These endpoints let you trigger transaction
      events programmatically to automate integration tests and verify webhook
      handling without depending on external systems or staging real deposits.
      **Sandbox only** — all simulation endpoints return `404 Not Found` in
      production.
  - name: raindrops
    description: >-
      Rewards and points management endpoints. Custom API keys need
      `raindrops:read`/`raindrops:write` for general rewards endpoints and
      `raindrops-travel:read`/`raindrops-travel:write` for travel redemption
      endpoints.
    x-group: rewards
paths:
  /issuing/raindrops/balance:
    get:
      tags:
        - raindrops
      summary: Get a user's points balance
      description: >-
        Returns a user's Raindrops balance. Response shape depends on the tenant
        points mode: `RAIN_MANAGED` returns the full balance breakdown;
        `PARTNER_OFFCHAIN` returns only `availablePoints` from Rain's off-chain
        ledger; `PARTNER_ONCHAIN` returns `405` because the partner is canonical
        for user balances.
      operationId: getRaindropsBalance
      parameters:
        - name: userId
          in: query
          description: The ID of the user to get the balance for
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Successful operation. Response shape varies by tenant points mode.
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    description: Full balance breakdown for Rain-managed tenants
                    required:
                      - onChainPoints
                      - withheldPoints
                      - pendingPoints
                      - pendingStatementCredits
                      - availablePoints
                    properties:
                      onChainPoints:
                        type: string
                        description: >-
                          The user's on-chain points balance, returned as a
                          string to preserve precision
                      withheldPoints:
                        type: string
                        description: >-
                          Points withheld for in-flight travel bookings,
                          returned as a string to preserve precision
                      pendingPoints:
                        type: string
                        description: >-
                          Points pending from earned transactions that have not
                          yet been minted on-chain, returned as a string to
                          preserve precision
                      pendingStatementCredits:
                        type: string
                        description: >-
                          Pending statement credits from completed redemptions
                          not yet on a statement, returned as a string to
                          preserve precision
                      availablePoints:
                        type: string
                        description: >-
                          Available points (on-chain minus withheld), returned
                          as a string to preserve precision
                  - type: object
                    description: Simplified balance for partner-managed off-chain tenants
                    required:
                      - availablePoints
                    properties:
                      availablePoints:
                        type: string
                        description: >-
                          Available points computed from the off-chain ledger,
                          clamped to zero if negative. Returned as a string to
                          preserve precision.
        '400':
          description: Invalid request
        '401':
          description: Invalid authorization
        '403':
          description: Raindrops are not enabled for this tenant
        '404':
          description: User not found
        '405':
          description: >-
            Partner-managed on-chain tenants read balances directly from
            partner-managed wallets. Use your own balance system, or use
            `/issuing/raindrops/travel-redemptions/balance` for travel display
            balance checks.
        '500':
          description: Internal server error
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      name: Api-Key
      in: header

````