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

# Get document preview URLs

> Create temporary preview links for documents already stored on this request. Use this only when your UI needs to display an uploaded document.

Create temporary preview links for documents already stored on this request. Use this only when your UI needs to display an uploaded document.

The response contains `data.caseId` and `data.documents`, including each document’s `viewUrl` and `expiresAt`.


## OpenAPI

````yaml post /v1/customers/{customerId}/onboarding-requests/{caseId}/documents/view-url
openapi: 3.0.3
info:
  title: Blockradar Documentation
  description: >-
    The OpenAPI specification of the Blockradar API that enables fintechs and
    developers to seamlessly integrate stablecoin deposits and payments into
    their products.
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.blockradar.co
security:
  - apiKey: []
tags:
  - name: Rewards
    description: >-
      Non-custodial yield (Earn) on stablecoins via DeFi (Aave) strategies.
      Deposit, withdraw, preview fees, and read positions and earnings at the
      business, wallet, and sub-address level. Amounts are returned net of the
      platform fee, which applies only to interest earned.
  - name: Wallet
    description: >-
      Wallet Management System


      Comprehensive wallet management API for multi-blockchain operations. This
      system handles wallet creation, configuration, balance monitoring, and
      integration with various blockchain networks.


      Core Functionality:


      - Multi-blockchain wallet creation and management

      - Balance monitoring and asset tracking

      - Auto-settlement rule configuration

      - Gateway wallet integration

      - Address generation and management

      - Transaction monitoring and processing
  - name: Addresses
    description: >-
      Address Management System


      Comprehensive blockchain address management API for operations. This
      system handles address creation, validation, monitoring, and management
      across multiple blockchain networks.


      Core Functionality:


      - Multi-blockchain address generation

      - Address validation and verification

      - Balance monitoring and tracking

      - Transaction history management

      - Address labeling and organization

      - Integration with wallet systems

      - Real-time address monitoring
  - name: Asset
  - name: Transactions
  - name: Withdraw
    description: >-
      The Withdraw feature allows you to programmatically withdraw stablecoins
      from your master wallet with ease
  - name: Withdraw Fiat
  - name: Signing
    description: >-
      Signing service for plain text messages, raw transactions, and EIP-712
      typed data. Message signing, transaction signing, and sign-and-broadcast
      are available on EVM, Tron, Solana, and Stellar. Typed data signing
      (EIP-712, including EIP-2612 Permit and EIP-3009
      TransferWithAuthorization) is EVM-only.
  - name: Swap
    description: >-
      The Swap feature enables users to exchange one stabelcoin asset for
      another across different blockchains. This feature provides a seamless way
      to convert between different stablecoins while maintaining security and
      compliance standards.
  - name: Liquidity Pool
  - name: Virtual Accounts
    description: >-
      Virtual Accounts API provides endpoints for managing virtual bank accounts
      linked to master wallets or child addresses. This API enables businesses
      to:


      - Create virtual accounts for customers to receive payments

      - Retrieve virtual account details

      - Activate/deactivate virtual accounts


      **Virtual Account Types:**


      Virtual accounts support different types with varying behaviors:


      1. **AUTO_FUNDING** (Default):

          - Automatically mints stablecoin when fiat payments are received

          - Transfers the stablecoin to the linked wallet/address immediately

          - Best for real-time payment processing


      **How It Works - Auto-Funding Flow (AUTO_FUNDING type only):**


      When a customer sends fiat currency to a virtual account with type
      AUTO_FUNDING:


      1. **Payment Receipt**: The payment is received in the virtual account

      2. **Automatic Minting**: The system automatically mints the stablecoin
      equivalent

      3. **Blockchain Transfer**: The minted stablecoin is transferred to the
      virtual account's linked wallet or address


      **Note**: The auto-funding flow only applies to virtual accounts with type
      `AUTO_FUNDING`.

      Other types have different processing behaviors.


      ## Prerequisites


      Before creating virtual accounts, ensure:


      - **Compliance requirements must be completed** (see [Compliance
      Requirements](http://localhost:3000/essentials/virtual-accounts#compliance-requirements)
      section below)

      - **Virtual accounts feature must be enabled** for your business (reach
      out to [support@blockradar.co](https://mailto:support@blockradar.co) or
      use live chat on the dashboard to enable the feature after compliance
      approval)

      - **Environment-aware routing** - testnet requests use only testnet routes
      and wallets, while mainnet requests use only mainnet routes and wallets

      - **Master Wallet must support stablecoin asset** - Your account plan must
      include stablecoin access (upgrade from Dashboard → Settings →
      Subscription if needed)


      **Supported Currency:**


      - Fiat: NGN (Nigerian Naira)

      - Stablecoin: cNGN - minted automatically on blockchain (for AUTO_FUNDING
      type)
  - name: Auto Settlements
    description: >-
      Creates a new auto settlement rule for a wallet. Auto settlement
      automatically transfers/swap assets based on configured rules when certain
      conditions are met.


      Rules can be configured for:


      - Source blockchain and assets

      - Destination blockchain and asset

      - Amount ranges (min/max)

      - Slippage tolerance

      - Gateway vs non-gateway wallets


      Gateway rules are required for testnet wallets and must have matching
      source/destination assets.
  - name: Smart Contract
    description: >-
      This API provides endpoints for interacting with smart contracts on the
      blockchain. It allows for reading contract data, executing contract
      functions, and estimating network fees.
  - name: Gateway
    description: >-
      The Gateway feature enables you to programmatically deposit USDC into a
      unified, chain-abstracted balance and instantly mint USDC on any supported
      blockchain, streamlining crosschain transfers and eliminating manual
      bridging steps and rebalancing complexities.
  - name: Payment Links
    description: >-
      The Payment Pages API provides a quick and secure way to collect payment
      for servcies.
  - name: Beneficiaries
    description: >-
      This API allows you to create beneficiaries with automatic settlements to
      your external wallets on a periodic basis.


      Example frequencies: INSTANT, DAILY, WEEKLY, MONTHLY, YEARLY
  - name: AML
    description: >-
      The AML (Anti Money Laundering) API provides a quick way for you to check
      if an address is blacklisted or sanctioned
  - name: Asset Recovery
    description: >-
      Enables the recovery (salvage) of both native blockchain assets and tokens
      from a specified sender address to a recipient address. This feature
      supports emergency fund recovery and asset consolidation operations.
  - name: Miscellaneous
    description: >-
      The Miscellaneous API are supporting APIs that can be used to provide more
      details to other APIs.
  - name: Asset1
  - name: Blockchain
  - name: Webhooks
    description: >-
      Webhooks allow you to set up a notification system that can be used to
      receive updates on certain requests made to the Blockradar API.

      To see full list and instructions
      [https://docs.blockradar.co/essentials/webhooks](https://docs.blockradar.co/essentials/webhooks)


      ##
  - name: Deposit
  - name: Withdraw1
  - name: Swap1
  - name: Gateway1
paths:
  /v1/customers/{customerId}/onboarding-requests/{caseId}/documents/view-url:
    post:
      tags:
        - Customer Onboarding
      summary: Get document preview URLs
      description: >-
        Create temporary preview links for documents already stored on this
        request. Use this only when your UI needs to display an uploaded
        document.
      operationId: CustomerOnboardingController_getDocumentViewUrls
      parameters:
        - $ref: '#/components/parameters/CustomerId'
        - $ref: '#/components/parameters/OnboardingCaseId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                documents:
                  type: array
                  items:
                    type: object
                    properties:
                      storageKey:
                        type: string
                    required:
                      - storageKey
              required:
                - documents
      responses:
        '200':
          description: Customer onboarding request updated.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/CustomerOnboardingDocumentViewUrlsResponse
        '400':
          description: Invalid data or operation not supported in the current case state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerFiatError'
        '404':
          description: >-
            Customer or matching customer onboarding case not found for the
            authenticated business.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerFiatError'
components:
  parameters:
    CustomerId:
      name: customerId
      in: path
      required: true
      description: Customer identifier.
      schema:
        type: string
        format: uuid
    OnboardingCaseId:
      name: caseId
      in: path
      required: true
      description: Customer onboarding case identifier.
      schema:
        type: string
        format: uuid
  schemas:
    CustomerOnboardingDocumentViewUrlsResponse:
      type: object
      properties:
        status:
          type: boolean
          example: true
        message:
          type: string
        data:
          type: object
          properties:
            caseId:
              type: string
              format: uuid
            documents:
              type: array
              items:
                type: object
                properties:
                  storageKey:
                    type: string
                  viewUrl:
                    type: string
                    format: uri
                  expiresAt:
                    type: string
                    format: date-time
                required:
                  - storageKey
                  - viewUrl
                  - expiresAt
          required:
            - caseId
            - documents
      required:
        - status
        - message
        - data
    CustomerFiatError:
      type: object
      properties:
        statusCode:
          type: integer
        message:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
        details:
          $ref: '#/components/schemas/CustomerFiatRecoveryDetails'
        requestId:
          type: string
      required:
        - statusCode
        - message
    CustomerFiatRecoveryDetails:
      type: object
      properties:
        code:
          type: string
          enum:
            - CUSTOMER_ONBOARDING_REQUIRED
            - CUSTOMER_ONBOARDING_PENDING
            - CUSTOMER_ONBOARDING_REJECTED
            - CUSTOMER_PROVIDER_UNAVAILABLE
            - CUSTOMER_IDENTITY_UNSUPPORTED
            - OFFRAMP_ROUTE_UNSUPPORTED
            - OFFRAMP_BUSINESS_NOT_ELIGIBLE
            - FIAT_WITHDRAWAL_SESSION_EXPIRED
            - FIAT_WITHDRAWAL_SESSION_MISMATCH
            - FIAT_WITHDRAWAL_SESSION_UNAVAILABLE
            - FIAT_WITHDRAWAL_SESSION_PRICING_CHANGED
            - FIAT_DEPOSIT_SESSION_EXPIRED
            - FIAT_DEPOSIT_SESSION_MISMATCH
            - FIAT_DEPOSIT_SESSION_UNAVAILABLE
        customerId:
          type: string
          format: uuid
        provider:
          type: object
          properties:
            id:
              type: string
              format: uuid
            slug:
              type: string
            name:
              type: string
          required:
            - id
            - slug
            - name
        onboarding:
          type: object
          properties:
            caseId:
              type: string
              nullable: true
            status:
              type: string
              nullable: true
            providerStatus:
              type: string
              nullable: true
            action:
              oneOf:
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - create_case
                    method:
                      type: string
                      enum:
                        - POST
                    path:
                      type: string
                      example: >-
                        /v1/customers/18d2f159-e0cd-4a45-b735-e9dfe0f7520a/onboarding-requests
                    body:
                      type: object
                      properties:
                        provider:
                          type: string
                        type:
                          type: string
                          enum:
                            - onramp
                            - offramp
                      required:
                        - provider
                        - type
                  required:
                    - type
                    - method
                    - path
                    - body
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - resume_case
                        - wait
                    method:
                      type: string
                      enum:
                        - GET
                    path:
                      type: string
                  required:
                    - type
                    - method
                    - path
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - contact_support
                  required:
                    - type
      required:
        - code
      description: >-
        Onboarding recovery failures include customerId, provider and
        onboarding.action. Unsupported identity and route failures can contain
        fewer fields. Follow only the returned action.
  securitySchemes:
    apiKey:
      type: apiKey
      name: x-api-key
      in: header

````

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