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

# Create fiat deposit

> The endpoint creates a bank transfer [fiat](/glossary#fiat) deposit request and returns the bank details for the transfer in `paymentDetails`. Supported [providers](/glossary#provider): `SEPA_BCB_GROUP`, `SEPA_CLEAR_JUNCTION`, `FINCI`, and `SEPA_FINSEI`.

`SEPA_BCB_GROUP` requires an active [virtual account](/glossary#virtual-account). Register the account with [Create virtual account](/api-reference/account-wallet/create-virtual-account) and wait until [Get virtual account status](/api-reference/account-wallet/get-virtual-account-status) returns `active`. Without an active virtual account, the endpoint rejects the request with `Virtual account is missing`. The other providers have no virtual account prerequisite.

Send the bank transfer to the account in `paymentDetails`. To track the deposit, call [Get deposit/withdraw history](/api-reference/account-wallet/get-deposit-withdraw-history) with `unique_id` set to the `uniqueId` from the request.

The minimum and maximum deposit amounts of the provider and the daily and monthly deposit limits of the account apply. Fees match the fees for deposits made in the WhiteBIT interface.

Two settings control access to the endpoint:
- **Endpoint access.** Enable the endpoint in the [API key settings](/api-reference/authentication#setting-up-api-keys).
- **Provider access.** WhiteBIT support enables API deposits for each provider on the account. Without provider access, the endpoint returns `403`.

<Warning>
Rate limit: 1000 requests/10 sec.
</Warning>

<Note>
The API does not cache the response.
</Note>


POST

Copy URL

Copy URL


## OpenAPI

````yaml openapi/private/main_api_v4.yaml POST /api/v4/main-account/deposit
openapi: 3.0.3
info:
  title: WhiteBIT Private HTTP API V4
  description: |
    WhiteBIT Private HTTP API V4 for Main balance changes.

    Base URL: https://whitebit.com

    All endpoints return time in Unix-time format.
    All endpoints return either a JSON object or array.
    For receiving responses from API calls please use http method POST.
  version: 4.0.0
  contact:
    name: WhiteBIT Support
    email: support@whitebit.com
    url: https://whitebit.com
servers:
  - url: https://whitebit.com
    description: WhiteBIT Global Server
  - url: https://whitebit.eu
    description: WhiteBIT EU Server
  - url: https://whitebit.tr
    description: WhiteBIT TR Server
  - url: https://whitebit.ge
    description: WhiteBIT GE Server
security:
  - ApiKeyAuth: []
    PayloadAuth: []
    SignatureAuth: []
tags:
  - name: Main Account
    description: Main account balance and operations
  - name: Deposit
    description: Cryptocurrency and fiat deposit operations
  - name: Withdraw
    description: Cryptocurrency and fiat withdrawal operations
  - name: Transfer
    description: Balance transfer operations
  - name: Codes
    description: WhiteBIT codes operations
  - name: Crypto Lending - Fixed
    description: Fixed crypto lending plans
  - name: Crypto Lending - Flex
    description: Flexible crypto lending plans
  - name: Fees
    description: Fee information
  - name: Sub-Account
    description: Sub-account management
  - name: Sub-Account API Keys
    description: Sub-account API key management
  - name: Mining Pool
    description: Mining pool operations
  - name: Credit Line
    description: Credit line information
  - name: JWT
    description: JWT token management
  - name: Travel Rule
    description: Travel Rule compliance endpoints for deposits and withdrawals
paths:
  /api/v4/main-account/deposit:
    post:
      tags:
        - Deposit
      summary: Create fiat deposit
      description: >
        The endpoint creates a bank transfer [fiat](/glossary#fiat) deposit
        request and returns the bank details for the transfer in
        `paymentDetails`. Supported [providers](/glossary#provider):
        `SEPA_BCB_GROUP`, `SEPA_CLEAR_JUNCTION`, `FINCI`, and `SEPA_FINSEI`.


        `SEPA_BCB_GROUP` requires an active [virtual
        account](/glossary#virtual-account). Register the account with [Create
        virtual account](/api-reference/account-wallet/create-virtual-account)
        and wait until [Get virtual account
        status](/api-reference/account-wallet/get-virtual-account-status)
        returns `active`. Without an active virtual account, the endpoint
        rejects the request with `Virtual account is missing`. The other
        providers have no virtual account prerequisite.


        Send the bank transfer to the account in `paymentDetails`. To track the
        deposit, call [Get deposit/withdraw
        history](/api-reference/account-wallet/get-deposit-withdraw-history)
        with `unique_id` set to the `uniqueId` from the request.


        The minimum and maximum deposit amounts of the provider and the daily
        and monthly deposit limits of the account apply. Fees match the fees for
        deposits made in the WhiteBIT interface.


        Two settings control access to the endpoint:

        - **Endpoint access.** Enable the endpoint in the [API key
        settings](/api-reference/authentication#setting-up-api-keys).

        - **Provider access.** WhiteBIT support enables API deposits for each
        provider on the account. Without provider access, the endpoint returns
        `403`.


        <Warning>

        Rate limit: 1000 requests/10 sec.

        </Warning>


        <Note>

        The API does not cache the response.

        </Note>
      operationId: createFiatDeposit
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - ticker
                - provider
                - amount
                - uniqueId
                - request
                - nonce
              properties:
                ticker:
                  type: string
                  description: >
                    Base currency [ticker](/glossary#ticker) of the
                    [fiat](/glossary#fiat) currency. Use `EUR`.
                  example: EUR
                provider:
                  type: string
                  description: >
                    [Fiat](/glossary#fiat) [provider](/glossary#provider) for
                    the deposit: `SEPA_BCB_GROUP`, `SEPA_CLEAR_JUNCTION`,
                    `FINCI`, or `SEPA_FINSEI`. Confirm the providers enabled for
                    the account with the [Asset Status
                    endpoint](/api-reference/market-data/asset-status-list).
                  example: SEPA_BCB_GROUP
                amount:
                  type: string
                  description: >
                    Deposit amount in `ticker` units. The amount must be within
                    the minimum and maximum deposit amounts of the provider and
                    the deposit limits of the account.
                  example: '100'
                uniqueId:
                  type: string
                  maxLength: 255
                  description: >
                    Unique deposit identifier on the client side. Any string up
                    to 255 characters; must be unique for the account. Use the
                    value to find the deposit in the deposit/withdraw history.
                  example: a7d3c9e2-6f14-4b8e-9d21-3c5e7f9a1b04
                request:
                  type: string
                  description: >
                    Request path. See the [authentication
                    guide](/api-reference/authentication) for signature
                    generation details.
                  example: '{{request}}'
                nonce:
                  type: integer
                  description: >
                    A unique identifier for the request. Use a monotonically
                    increasing value such as a Unix timestamp in milliseconds.
                  example: 1594297865000
            example:
              ticker: EUR
              provider: SEPA_BCB_GROUP
              amount: '100'
              uniqueId: a7d3c9e2-6f14-4b8e-9d21-3c5e7f9a1b04
              request: '{{request}}'
              nonce: 1594297865000
      responses:
        '200':
          description: Deposit request created
          content:
            application/json:
              schema:
                type: object
                required:
                  - depositId
                  - uniqueId
                  - paymentDetails
                properties:
                  depositId:
                    type: string
                    description: Deposit identifier assigned by WhiteBIT.
                  uniqueId:
                    type: string
                    description: The `uniqueId` from the request.
                  paymentDetails:
                    type: object
                    additionalProperties: true
                    description: >
                      Bank details for the transfer. The set of keys depends on
                      the provider: `SEPA_BCB_GROUP` and `SEPA_CLEAR_JUNCTION`
                      return `beneficiary`, `iban`, and `bic`. Other providers
                      return provider-specific keys.
                    properties:
                      beneficiary:
                        type: string
                        description: Beneficiary name for the bank transfer.
                      iban:
                        type: string
                        description: IBAN of the receiving account.
                      bic:
                        type: string
                        description: BIC (SWIFT code) of the receiving bank.
              example:
                depositId: 4b8a7c1e-5d2f-4e3a-9b6c-1f0e2d3c4b5a
                uniqueId: a7d3c9e2-6f14-4b8e-9d21-3c5e7f9a1b04
                paymentDetails:
                  beneficiary: Acme Trading Ltd
                  iban: DE89370400440532013000
                  bic: COBADEFFXXX
        '400':
          description: >
            Validation failed. The endpoint also returns `400` when KYC
            verification of the account is incomplete, or when the provider
            requires a billing address and the account profile has none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FiatDepositError'
              examples:
                requiredFields:
                  summary: Required fields missing
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      ticker:
                        - The ticker field is required.
                      provider:
                        - The provider field is required.
                      amount:
                        - The amount field is required.
                      uniqueId:
                        - The unique id field is required.
                invalidProvider:
                  summary: Provider not available
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      provider:
                        - The selected provider is invalid.
                amountNotNumber:
                  summary: Amount is not a number
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      amount:
                        - The amount must be a number.
                uniqueIdTaken:
                  summary: Unique ID already used
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      uniqueId:
                        - The unique id has already been taken.
                providerNotSupported:
                  summary: Provider not supported for the currency
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      provider: Provider is not supported for this currency
                virtualAccountMissing:
                  summary: No active virtual account (SEPA_BCB_GROUP)
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      provider: Virtual account is missing
                amountTooLittle:
                  summary: Amount below the deposit minimum
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      amount: Amount is too little for deposit
                amountTooBig:
                  summary: Amount above the deposit maximum
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      amount: Amount is too big for deposit
                dailyLimit:
                  summary: Daily limit reached
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      amount: Daily limit reached
                monthlyLimit:
                  summary: Monthly limit reached
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      amount: Monthly limit reached
                amountBelowProviderMinimum:
                  summary: Amount below the provider minimum
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      amount: Amount is too little for payment system
                categoryRestricted:
                  summary: Currency not available for the account category
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      ticker: Currency is not available for this account category
                notDepositable:
                  summary: Currency not depositable
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      ticker: Currency is not depositable
        '403':
          description: >-
            API deposits are not enabled for the provider on the account.
            Contact WhiteBIT support to enable the provider.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FiatDepositError'
              example:
                code: 0
                message: >-
                  You don't have permission to use this endpoint. Please contact
                  support for more details
        '423':
          description: >
            Another deposit request from the same account is in progress. The
            endpoint processes deposit requests from the same account one at a
            time: a concurrent request waits until the earlier request completes
            and fails with `423` only if the wait period runs out. Retry after
            the earlier request completes.
        '451':
          description: The currency is unavailable for the jurisdiction of the account.
components:
  schemas:
    FiatDepositError:
      type: object
      description: >
        Error response of the fiat deposit and virtual account endpoints.
        Request-rule failures return each `errors` value as an array of
        messages. Business-rule failures return each `errors` value as a single
        message string.
      properties:
        code:
          type: integer
        message:
          type: string
        errors:
          type: object
          additionalProperties:
            oneOf:
              - type: string
              - type: array
                items:
                  type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-TXC-APIKEY
      description: The public WhiteBIT API key.
    PayloadAuth:
      type: apiKey
      in: header
      name: X-TXC-PAYLOAD
      description: Base64-encoded JSON request body.
    SignatureAuth:
      type: apiKey
      in: header
      name: X-TXC-SIGNATURE
      description: >-
        HMAC-SHA512 signature of the payload, hex-encoded. Computed as
        hex(HMAC-SHA512(payload, api_secret)).

````

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