> ## 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.

# Prepare Customer Onboarding Uploads

> Prepares upload targets for file or document fields in the current customer-onboarding requirements schema. Use the exact field paths and constraints returned by the schema.

N'utilisez cette opération que pour les champs de fichier ou de document déclarés par
le schéma d'exigences actuel de l'onboarding du client.


## OpenAPI

````yaml post /v1/onboarding/cases/{caseId}/uploads/prepare
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/onboarding/cases/{caseId}/uploads/prepare:
    post:
      tags:
        - Customer Onboarding
      summary: Prepare Customer Onboarding Uploads
      description: >-
        Prepares upload targets for file or document fields in the current
        customer-onboarding requirements schema. Use the exact field paths and
        constraints returned by the schema.
      operationId: OnboardingController_prepareUploads
      parameters:
        - $ref: '#/components/parameters/OnboardingCaseId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrepareOnboardingUploadsDto'
      responses:
        '200':
          description: Upload targets prepared.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrepareOnboardingUploadsResponse'
              example:
                statusCode: 200
                message: Onboarding upload targets prepared successfully
                data:
                  caseId: 71d6b5ac-6312-43eb-b389-789d214bbda2
                  uploads:
                    - field: identityDocument
                      document:
                        mode: proxy
                        proxyUploadId: upload_01K0PZV5X8JQ4V9N0P7K2M6C3F
                        method: POST
                        providerReference: document_839201
                        documentType: passport
                        expiresAt: '2026-07-22T14:30:00.000Z'
                        sides:
                          - front
                        accept:
                          - image/jpeg
                          - image/png
                          - application/pdf
components:
  parameters:
    OnboardingCaseId:
      name: caseId
      in: path
      required: true
      description: Customer onboarding case identifier.
      schema:
        type: string
        format: uuid
  schemas:
    PrepareOnboardingUploadsDto:
      type: object
      properties:
        mode:
          type: string
          enum:
            - direct
            - proxy
          default: proxy
        files:
          type: array
          items:
            $ref: '#/components/schemas/PrepareOnboardingUploadFile'
      required:
        - files
    PrepareOnboardingUploadsResponse:
      type: object
      properties:
        statusCode:
          type: integer
        message:
          type: string
        data:
          type: object
          properties:
            caseId:
              type: string
              format: uuid
            uploads:
              type: array
              items:
                type: object
          required:
            - caseId
            - uploads
      required:
        - statusCode
        - message
        - data
    PrepareOnboardingUploadFile:
      type: object
      properties:
        field:
          type: string
          description: Exact property path from the current requirements schema.
        fileName:
          type: string
        contentType:
          type: string
        documentType:
          type: string
        sides:
          type: array
          items:
            type: string
            enum:
              - front
              - back
        doubleSided:
          type: boolean
        parts:
          type: array
          items:
            $ref: '#/components/schemas/PrepareOnboardingUploadPart'
        maxFileSizeBytes:
          type: integer
          minimum: 1
      required:
        - field
    PrepareOnboardingUploadPart:
      type: object
      properties:
        side:
          type: string
          enum:
            - front
            - back
        fileName:
          type: string
        contentType:
          type: string
      required:
        - side
        - fileName
        - contentType
  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.