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

# Initialize user branded token account

> Generate a transaction to initialize a user's branded token account. This endpoint allows developers to pay for account initialization on behalf of users by setting the `signer` parameter to their own address - the signer will pay for the account initialization costs, while `feePayer` covers transaction fees. Note: The `/integration/mint` endpoint automatically handles account initialization, so this endpoint is typically only needed if you want to initialize accounts separately from minting.



## OpenAPI

````yaml /api-reference/openapi.json post /integration/initialize-user-account
openapi: 3.0.3
info:
  title: Reflect API
  description: >-
    Interact with the Reflect infrastructure via API. Retrieve stablecoin and
    protocol stats. Generate transactions for minting and redeeming stablecoins.
    Manage integrations and issue whitelabel stablecoins.


    ## Rate Limiting

    - **Unauthenticated users**: 100 requests per minute

    - **Authenticated integrators**: 500 requests per minute


    ## Authentication

    To access higher rate limits, include your API key in the `X-API-Key`
    header. API keys can be obtained through the integration management
    endpoints.
  version: 1.0.0
  contact:
    name: Reflect
    url: https://reflect.money
servers:
  - url: https://prod.api.reflect.money
    description: Production environment
  - url: https://dev.api.reflect.money
    description: Development environment (includes /tranches endpoints)
security: []
tags:
  - name: Health
    description: Health check endpoints
  - name: Stablecoin
    description: Reflect stablecoins interaction endpoints.
  - name: Integration
    description: Custom integration management endpoints.
  - name: Stats
    description: Protocol statistics endpoints
  - name: Events
    description: Protocol events endpoints
  - name: Tranches - Senior
    description: >-
      Senior tranche endpoints (development API only). Deposit and redeem
      underlying stablecoins, query tranche statistics and exchange rates.
  - name: Tranches - Junior
    description: >-
      Junior tranche endpoints (development API only). Deposit and withdraw
      assets, manage cooldowns, query tranche statistics and exchange rates.
  - name: Tranches
    description: General tranche endpoints (development API only).
paths:
  /integration/initialize-user-account:
    post:
      tags:
        - Integration
      summary: Initialize user branded token account
      description: >-
        Generate a transaction to initialize a user's branded token account.
        This endpoint allows developers to pay for account initialization on
        behalf of users by setting the `signer` parameter to their own address -
        the signer will pay for the account initialization costs, while
        `feePayer` covers transaction fees. Note: The `/integration/mint`
        endpoint automatically handles account initialization, so this endpoint
        is typically only needed if you want to initialize accounts separately
        from minting.
      parameters:
        - name: cluster
          in: query
          description: Solana cluster to use (defaults to mainnet)
          required: false
          schema:
            type: string
            enum:
              - mainnet
              - devnet
            default: mainnet
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                integrationId:
                  type: string
                  description: Integration ID (proxy state address)
                userAddress:
                  type: string
                  description: User's Solana address (the account owner)
                signer:
                  type: string
                  description: >-
                    Signer Solana address. This address will pay for the account
                    initialization costs. Set this to your integration's address
                    to pay for users on their behalf.
                feePayer:
                  type: string
                  description: >-
                    Fee payer Solana address. This address will pay for
                    transaction fees.
              required:
                - integrationId
                - userAddress
                - signer
                - feePayer
      responses:
        '200':
          description: Initialize user account transaction generated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
components:
  schemas:
    TransactionResponse:
      allOf:
        - $ref: '#/components/schemas/BaseResponse'
        - type: object
          properties:
            data:
              type: object
              properties:
                transaction:
                  type: string
                  description: Base64 encoded transaction
                  example: >-
                    AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAED...
              required:
                - transaction
          required:
            - data
    BadRequestErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Whether the request was successful
          example: false
        message:
          type: string
          description: Error message describing what went wrong with the request
          example: 'Invalid request data: depositAmount must be positive'
      required:
        - success
        - message
    InternalServerErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Whether the request was successful
          example: false
        message:
          type: string
          description: Error message describing the server error
          example: Internal server error
      required:
        - success
        - message
    BaseResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Whether the request was successful
      required:
        - success

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.