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

# Create Wallet Transfer

> By consuming this endpoint, you can create a new wallet_transfer to move your tokens between your wallets.

#### Headers

| Field | **Type** | Required | Description |
| --- | --- | --- | --- |
| Authorization | Header | Yes | The access token that authenticates the request. |
| userId | UUID | Yes | The unique identifier of one of your users who is the origin of the funds. Sent in the path; obtainable through the **GET /admin/users** endpoint. |

#### Request Body

| **Field** | **Description** |
| --- | --- |
| symbol | The symbol of the asset you will send (USDC, COPM) |
| amount | The amount of the asset you will send. |
| network | This is the Network your wallet was issued for. Please, make sure it matches the network your digital Wallet supports when registering it and submitting orders. |
| OriginId | The unique ID of your origin Wallet you selected as the origin for the wallet_transfer you are creating. You can obtain the ID using the **GET /admin/wallets/&#123;user_id&#125;** endpoint. Please make sure the wallet status is approved. |
| destination | Object with "type" and "walletId". "type" must be INTERNAL or EXTERNAL. "walletId" is required in both cases. Origin and destination must be on the same network. Both wallets must be APPROVED.  <br />  <br />INTERNAL: transfer to another custodial wallet of the same user. "walletId" is the operational ID from GET /wallets (use walletId, not id).  <br />  <br />EXTERNAL: withdrawal to a previously registered external wallet of the same user. "walletId" is that registered external wallet ID. Optional "address" and "network" if you need to specify them; they must match the registered wallet and the origin network. |

## Response

Upon a successful request, the server will respond with the following details:

| **Field** | **Description** |
| --- | --- |
| Id | The unique identifier of the wallet transfer. |
| amountOrigin | This is the amount transferred from the source wallet. |
| amountDestination | This is the amount received in the destination wallet. |
| originId | This is the unique identifier of wallet origin you want to use for your wallet_transfer. |
| destinationId | This is the unique identifier of the wallet you want to use for your wallet_transfer. |
| numberCode | This is your wallet_transfer tracking number. |
| direction | The type of operation: transfer |
| registerDate | This is the date when you created your wallet_transfer with us. |
| status | The status of the operation. It can be: "PENDING": Awaiting the funds, "REJECTED": The operation does not meet our requirements,  <br />"COMPLETED": Transaction successfully completed.  <br />"CANCELED": The operation expired without completion. |
| symbolOrigin | The symbol of the token sent in the wallet_transfer |
| symbolDestination | The symbol of the token resulting in the wallet_transfer |



## OpenAPI

````yaml /stack/openapi.json post /api/v1/admin/operation/{user_id}/transfer
openapi: 3.1.0
info:
  title: Kravata Stack API
  version: '2.0'
  description: >-
    Kravata Stack API: users, accounts, custody wallets, liquidity ramps and
    fiat payments.
servers:
  - url: https://test-api-kore.kravata.co
    description: Test
  - url: https://partners-api.kravata.co
    description: Production (mTLS + IP allowlist)
security:
  - bearerAuth: []
tags:
  - name: Authentication
  - name: Users
  - name: Accounts
  - name: Earn
  - name: Custody
  - name: Liquidity Ramps
  - name: Payments
  - name: Webhooks
paths:
  /api/v1/admin/operation/{user_id}/transfer:
    post:
      tags:
        - Custody
      summary: Create Wallet Transfer
      description: >-
        By consuming this endpoint, you can create a new wallet_transfer to move
        your tokens between your wallets.


        #### Headers


        | Field | **Type** | Required | Description |

        | --- | --- | --- | --- |

        | Authorization | Header | Yes | The access token that authenticates the
        request. |

        | userId | UUID | Yes | The unique identifier of one of your users who
        is the origin of the funds. Sent in the path; obtainable through the
        **GET /admin/users** endpoint. |


        #### Request Body


        | **Field** | **Description** |

        | --- | --- |

        | symbol | The symbol of the asset you will send (USDC, COPM) |

        | amount | The amount of the asset you will send. |

        | network | This is the Network your wallet was issued for. Please, make
        sure it matches the network your digital Wallet supports when
        registering it and submitting orders. |

        | OriginId | The unique ID of your origin Wallet you selected as the
        origin for the wallet_transfer you are creating. You can obtain the ID
        using the **GET /admin/wallets/&#123;user_id&#125;** endpoint. Please
        make sure the wallet status is approved. |

        | destination | Object with "type" and "walletId". "type" must be
        INTERNAL or EXTERNAL. "walletId" is required in both cases. Origin and
        destination must be on the same network. Both wallets must be APPROVED. 
        <br />  <br />INTERNAL: transfer to another custodial wallet of the same
        user. "walletId" is the operational ID from GET /wallets (use walletId,
        not id).  <br />  <br />EXTERNAL: withdrawal to a previously registered
        external wallet of the same user. "walletId" is that registered external
        wallet ID. Optional "address" and "network" if you need to specify them;
        they must match the registered wallet and the origin network. |


        ## Response


        Upon a successful request, the server will respond with the following
        details:


        | **Field** | **Description** |

        | --- | --- |

        | Id | The unique identifier of the wallet transfer. |

        | amountOrigin | This is the amount transferred from the source wallet.
        |

        | amountDestination | This is the amount received in the destination
        wallet. |

        | originId | This is the unique identifier of wallet origin you want to
        use for your wallet_transfer. |

        | destinationId | This is the unique identifier of the wallet you want
        to use for your wallet_transfer. |

        | numberCode | This is your wallet_transfer tracking number. |

        | direction | The type of operation: transfer |

        | registerDate | This is the date when you created your wallet_transfer
        with us. |

        | status | The status of the operation. It can be: "PENDING": Awaiting
        the funds, "REJECTED": The operation does not meet our requirements, 
        <br />"COMPLETED": Transaction successfully completed.  <br
        />"CANCELED": The operation expired without completion. |

        | symbolOrigin | The symbol of the token sent in the wallet_transfer |

        | symbolDestination | The symbol of the token resulting in the
        wallet_transfer |
      operationId: create-wallet-transfer
      parameters:
        - name: user_id
          in: path
          required: true
          description: ''
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                originId:
                  type: string
                amount:
                  type: integer
                symbol:
                  type: string
                network:
                  type: string
                destination:
                  type: object
                  properties:
                    type:
                      type: string
                    walletId:
                      type: string
            example:
              originId: '{{wallet_id}}'
              amount: 30000
              symbol: COPM
              network: POLYGON
              destination:
                type: INTERNAL
                walletId: '{{destination_wallet_id}}'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  operation:
                    type: object
                    properties:
                      id:
                        type: string
                      userId:
                        type: string
                      prefix:
                        type: string
                      numberCode:
                        type: integer
                      originId:
                        type: string
                      destinationId:
                        type: string
                      symbolOrigin:
                        type: string
                      symbolDestination:
                        type: string
                      amountOrigin:
                        type: integer
                      amountDestination:
                        type: integer
                      rate:
                        type: integer
                      paymentMethod: {}
                      registerDate:
                        type: string
                      status:
                        type: string
                      direction:
                        type: string
                      depositInstructions: {}
                      metadataItems:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            operationId:
                              type: string
                            name:
                              type: string
                            value:
                              type: string
                      events: {}
                      treasuryItems: {}
                  tierEscalation: {}
              examples:
                operations-transfer:
                  summary: operations/transfer
                  value:
                    operation:
                      id: 84919478-6ebc-4021-ba3b-1cdd2b56b612
                      userId: 67960e40-0b5a-465d-8d78-610d7eff2785
                      prefix: WLT
                      numberCode: 70598
                      originId: e6776eb8-f6cd-4ac3-bf5e-4e96cf92e4ef
                      destinationId: 5f073272-44d1-49e5-a954-38e397e989b2
                      symbolOrigin: COPM
                      symbolDestination: COPM
                      amountOrigin: -10
                      amountDestination: 10
                      rate: 1
                      paymentMethod: null
                      registerDate: '2026-07-03T23:04:44.356476'
                      status: PENDING
                      direction: TRANSFER
                      depositInstructions: null
                      metadataItems:
                        - id: eb586c26-f474-4a98-b299-46067e5d1e06
                          operationId: 84919478-6ebc-4021-ba3b-1cdd2b56b612
                          name: transfer_group_id
                          value: 9d078f22-c617-4542-8454-7ad04343cae1
                        - id: 37ceea08-a5da-4e75-a107-aea76c201abe
                          operationId: 84919478-6ebc-4021-ba3b-1cdd2b56b612
                          name: transfer_destination_type
                          value: INTERNAL
                        - id: 35326e53-adf2-4144-ab83-7a601a20b71b
                          operationId: 84919478-6ebc-4021-ba3b-1cdd2b56b612
                          name: transfer_destination_network
                          value: POLYGON
                        - id: a1e8233d-fa4c-44db-a455-ff4485f830d8
                          operationId: 84919478-6ebc-4021-ba3b-1cdd2b56b612
                          name: transfer_receiver_user_id
                          value: ed0e63ed-de0a-4db7-8048-3648090d21d2
                      events: null
                      treasuryItems: null
                    tierEscalation: null
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Access token from POST /api/v1/client/token.

````