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

# Transfer

> This endpoint initiates a token transfer on the blockchain between two wallets. The request body specifies the sender's wallet address, the recipient's wallet address, the token to be transferred, and the quantity. Upon successful processing, a transfer ID (`id-in-client`) is returned. This ID can be used to track the status of the transfer using the [getTransferStatus](/omni-platform/omniomni-components/omni-safe/get-transfer-status) endpoint. Note that while this endpoint initiates the transfer on the blockchain, confirmation may take some time depending on network conditions.  If the `idInClient` already exists, a 409 error will be returned.



## OpenAPI

````yaml POST /v1/transfers
openapi: 3.0.1
info:
  contact:
    email: developers@ecrop.com
    name: ecrop OmniSafe API Support
    url: https://ecrop.de/contact/
  description: >
    # Preparation Guide

    Welcome to the OmniSafe API Documentation. This document provides a detailed
    list of available APIs and methods for managing wallets, tokens, and
    transfers. Before beginning your integration, it’s recommended to review the
    following essential documents:

    - **API Service Guide (Essential, Pro):** Designed for non-technical users,
      this guide helps in selecting the best API package based on business needs.
      Review it [here](https://youki.atlassian.net/wiki/spaces/mar/pages/534183949/API+Service+Guide).  # Keep or adapt

    - **Integration Handbook:** Targeted at developers, this handbook includes
      crucial details such as endpoint URLs, authentication methods,
      request/response formats, and error handling. It is essential for
      successful integration. Access the handbooks here:

      - [🌳 Pro Package Integration Handbook] # Keep or adapt

      - [🌱 Essential Package Integration Handbook] # Keep or adapt

    Familiarizing yourself with these documents will ensure a smoother
    integration process.
  license:
    name: ecrop OmniSafe
    url: https://developers.ecrop.de/api-license/
  termsOfService: https://developers.ecrop.de/terms-of-use/
  title: OmniSafe API Catalogue
  version: 1.0.0
  x-logo:
    backgroundColor: '#DDDDDD'
    url: >-
      https://static.wixstatic.com/media/fd3e8b_a57864adb1084dea94c9fab462a8f52c~mv2.png/v1/crop/x_0,y_131,w_1253,h_295/fill/w_233,h_55,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/fd3e8b_a57864adb1084dea94c9fab462a8f52c~mv2.png
servers:
  - description: Default
    url: https://omnisafe.sandbox.ecrop.de/omni-safe
security:
  - Bearer Authentication: []
tags:
  - name: Wallets
    description: Endpoints for managing wallets
  - name: Tokens
    description: Endpoints for managing tokens
  - name: Transfers
    description: Endpoints for managing transfers
paths:
  /v1/transfers:
    post:
      tags:
        - Transfers
      summary: Transfer a token
      description: >-
        This endpoint initiates a token transfer on the blockchain between two
        wallets. The request body specifies the sender's wallet address, the
        recipient's wallet address, the token to be transferred, and the
        quantity. Upon successful processing, a transfer ID (`id-in-client`) is
        returned. This ID can be used to track the status of the transfer using
        the
        [getTransferStatus](/omni-platform/omniomni-components/omni-safe/get-transfer-status)
        endpoint. Note that while this endpoint initiates the transfer on the
        blockchain, confirmation may take some time depending on network
        conditions.  If the `idInClient` already exists, a 409 error will be
        returned.
      operationId: transfer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlockchainTransactionDto'
        required: true
      responses:
        '201':
          description: The created transfer transaction
          content:
            application/json:
              schema:
                type: string
        '409':
          description: The transfer already exists
components:
  schemas:
    BlockchainTransactionDto:
      type: object
      properties:
        id-in-client:
          type: string
          description: >-
            An identifier provided by the client for this transfer.  Must be
            unique per client.
        tokenAddress:
          type: string
          description: The address of the token being transferred.
        tokenMark:
          type: string
          description: The mark or symbol of the token.
        senderAddress:
          type: string
          description: The address of the sender's wallet.
        recipientAddress:
          type: string
          description: The address of the recipient's wallet.
        quantity:
          type: number
          description: The amount of tokens to transfer.
  securitySchemes:
    Bearer Authentication:
      type: http
      scheme: bearer
      bearerFormat: JWT

````