---
title: "Send XRP from address to address"
method: POST
path: "/v3/xrp/transaction"
tags: ["Ripple (XRP) - Tatum API"]
---

# Send XRP from address to address

`POST /v3/xrp/transaction`

## Request

- Base URL: `https://api.tatum.io`
- URL: `https://api.tatum.io/v3/xrp/transaction`
- Auth: API key in header `x-api-key`

/v3/xrp/transaction

#### 10 credits per API call.

  

Send XRP from account to account.  
  
This operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key. No one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and loss of funds. In this method, it is possible to enter privateKey or signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production, [Tatum KMS](https://github.com/tatumio/tatum-kms) should be used for the highest security standards, and signatureId should be present in the request. Alternatively, using the Tatum client library for supported languages.

## Request body

- union
  - TransferXrpBlockchain
    - `fromAccount` string, required: XRP account address. Must be the one used for generating deposit tags.
    - `to` string, required: Blockchain address to send assets
    - `amount` string, required: Amount to be sent, in XRP.
    - `fromSecret` string, required: Secret for account. Secret, or signature Id must be present.
    - `fee` string: Fee to be paid, in XRP. If omitted, current fee will be calculated.
    - `sourceTag` integer: Source tag of sender account, if any.
    - `destinationTag` integer: Destination tag of recipient account, if any.
  - TransferXrpBlockchainAsset
    - `fromAccount` string, required: XRP account address. Must be the one used for generating deposit tags.
    - `to` string, required: Blockchain address to send assets
    - `amount` string, required: Amount to be sent, in XRP.
    - `fromSecret` string, required: Secret for account. Secret, or signature Id must be present.
    - `fee` string: Fee to be paid, in XRP. If omitted, current fee will be calculated.
    - `sourceTag` integer: Source tag of sender account, if any.
    - `destinationTag` integer: Destination tag of recipient account, if any.
    - `issuerAccount` string, required: Blockchain address of the issuer of the assets to create trust line for.
    - `token` string, required: Asset name. Must be 160bit HEX string, e.g. SHA1.
  - TransferXrpBlockchainKMS
    - `fromAccount` string, required: XRP account address. Must be the one used for generating deposit tags.
    - `to` string, required: Blockchain address to send assets
    - `amount` string, required: Amount to be sent, in XRP.
    - `signatureId` string, uuid, required: Identifier of the secret associated in signing application. Secret, or signature Id must be present.
    - `fee` string: Fee to be paid, in XRP. If omitted, current fee will be calculated.
    - `sourceTag` integer: Source tag of sender account, if any.
    - `destinationTag` integer: Destination tag of recipient account, if any.
  - TransferXrpBlockchainAssetKMS
    - `fromAccount` string, required: XRP account address. Must be the one used for generating deposit tags.
    - `to` string, required: Blockchain address to send assets
    - `amount` string, required: Amount to be sent, in XRP.
    - `signatureId` string, uuid, required: Identifier of the secret associated in signing application. Secret, or signature Id must be present.
    - `fee` string: Fee to be paid, in XRP. If omitted, current fee will be calculated.
    - `sourceTag` integer: Source tag of sender account, if any.
    - `destinationTag` integer: Destination tag of recipient account, if any.
    - `issuerAccount` string, required: Blockchain address of the issuer of the assets to create trust line for.
    - `token` string, required: Asset name. Must be 160bit HEX string, e.g. SHA1.

## Response `200`

OK

- union
  - TransactionHash
    - `txId` string, required: The hash (ID) of the transaction
  - SignatureId
    - `signatureId` string, uuid, required: The internal Tatum ID of the prepared transaction for Key Management Sysytem (KMS) to sign<br/>This is different from the <code>signatureId</code> parameter that you provided in the request body. The <code>signatureId</code> parameter in the request body specifies the signature ID associated with the private key in KMS.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
- `403`: Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.
- `500`: Internal server error. There was an error on the server during the processing of the request.

---

[API](https://skmtc.dev/tatum/apis/blockchain.md) - [All operations](https://skmtc.dev/tatum/apis/blockchain/llms.txt) - [OpenAPI document](https://skmtc.dev/tatum/apis/blockchain/revisions/f9623a85f420?raw)
