Create Wallet Transfer
curl --request POST \
--url https://test-api-kore.kravata.co/api/v1/admin/operation/{user_id}/transfer \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"originId": "{{wallet_id}}",
"amount": 30000,
"symbol": "COPM",
"network": "POLYGON",
"destination": {
"type": "INTERNAL",
"walletId": "{{destination_wallet_id}}"
}
}
'import requests
url = "https://test-api-kore.kravata.co/api/v1/admin/operation/{user_id}/transfer"
payload = {
"originId": "{{wallet_id}}",
"amount": 30000,
"symbol": "COPM",
"network": "POLYGON",
"destination": {
"type": "INTERNAL",
"walletId": "{{destination_wallet_id}}"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
originId: '{{wallet_id}}',
amount: 30000,
symbol: 'COPM',
network: 'POLYGON',
destination: {type: 'INTERNAL', walletId: '{{destination_wallet_id}}'}
})
};
fetch('https://test-api-kore.kravata.co/api/v1/admin/operation/{user_id}/transfer', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"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
}Custody
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/{user_id} 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. INTERNAL: transfer to another custodial wallet of the same user. “walletId” is the operational ID from GET /wallets (use walletId, not id). 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, “COMPLETED”: Transaction successfully completed. “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 |
POST
/
api
/
v1
/
admin
/
operation
/
{user_id}
/
transfer
Create Wallet Transfer
curl --request POST \
--url https://test-api-kore.kravata.co/api/v1/admin/operation/{user_id}/transfer \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"originId": "{{wallet_id}}",
"amount": 30000,
"symbol": "COPM",
"network": "POLYGON",
"destination": {
"type": "INTERNAL",
"walletId": "{{destination_wallet_id}}"
}
}
'import requests
url = "https://test-api-kore.kravata.co/api/v1/admin/operation/{user_id}/transfer"
payload = {
"originId": "{{wallet_id}}",
"amount": 30000,
"symbol": "COPM",
"network": "POLYGON",
"destination": {
"type": "INTERNAL",
"walletId": "{{destination_wallet_id}}"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
originId: '{{wallet_id}}',
amount: 30000,
symbol: 'COPM',
network: 'POLYGON',
destination: {type: 'INTERNAL', walletId: '{{destination_wallet_id}}'}
})
};
fetch('https://test-api-kore.kravata.co/api/v1/admin/operation/{user_id}/transfer', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"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
}Authorizations
Access token from POST /api/v1/client/token.
Path Parameters
Body
application/json

