# Execute transfer

Transfers funds between accounts. For example, use this request to fund a connector account by transferring funds from a transactional account to the connector account. You can also use this request to redeem funds to a transactional account by transferring funds from a connector account to the transactional account.

Endpoint: POST /transfers/execute
Version: 4.0.0
Security: Bearer

## Security:

  - `Bearer` (unknown)
    apiKey in header Authorization

## Request body:

  - `application/json` (unknown)
    See Transfer Request Object.

## Request fields (application/json):

  - `sender_address` (string, required)
    RippleNet account name and address, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
    Example: trans_usd_sf@rn.us.ca.san_francisco

  - `receiver_address` (string, required)
    RippleNet account name and address, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
    Example: conct_usd_sf@rn.us.ca.san_francisco

  - `amount` (number, required)
    Amount transferred, expressed in the account's currency.
    Example: 15

  - `owner_address` (string)
    Owner RippleNet address, if different from the RippleNet address of the `sender_address` and `receiver_address`.
    Example: rn.us.ca.san_francisco

  - `end_to_end_id` (string)
    ID set by the sender that is persisted on all xCurrent instances that participated in the transfer.
    Example: b09dd632-660e-48c8-907f-a4f3a7d12c18

  - `internal_id` (string)
    ID set by the sender that is persisted on the sending xCurrent instance only.
    Example: 9ad3c119-1379-443b-9c0e-fa82c54ae78d

  - `user_info` (object)
    Provide one or more arbitrary key/value pairs.

## Response 200:

  - `200` (unknown)
    Successfully executed transfer.

## Response 200 fields (application/json):

  - `transfer_id` (string, required)
    Unique identifier of the transfer.
    Example: 9eca588f-e89d-4629-82fa-da9c4646310f

  - `state` (string, required)
    State of the transfer.`QUOTED` and `PENDING` only apply when RippleNet is enabled to receive payments from xRapid. `QUOTED` represents an outbound transfer fee estimate. `PENDING` is the state of an outbound transfer executed by RippleNet (via xRapid) but not yet paid out by the digital exchange. If successfully paid out, the state becomes `COMPLETED`. If not successfully paid out by the digital exchange, the state becomes `FAILED`.
    Enum: "PREPARED", "EXECUTED", "COMPLETED", "CANCELLED", "FAILED", "QUOTED", "PENDING", "OTHER"

  - `owner_address` (string, required)
    Owner RippleNet address, if different from the RippleNet address of the `sender_address` and `receiver_address`.
    Example: rn.us.ca.san_francisco

  - `sender_address` (string, required)
    RippleNet account name and address, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
    Example: trans_usd_sf@rn.us.ca.san_francisco

  - `receiver_address` (string, required)
    RippleNet account name and address, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
    Example: conct_usd_sf@rn.us.ca.san_francisco

  - `amount` (number, required)
    Amount transferred, expressed in the account's currency.
    Example: 15

  - `internal_id` (string)
    Internal ID that the sender can optionally specify. Only visible to the sender. Only the sending RippleNet instance stores this ID.
    Example: 9cf5aa4b-1e44-436a-ab7c-d399aec905da

  - `end_to_end_id` (string)
    ID that the sender can optionally specify. Persisted on all RippleNet instances that participated in the transfer.
    Example: fd7559be-aa85-433f-a283-0cd58681cdf0

  - `sending_fee` (number)
    Optional sending fee charged by a digital asset exchange for initiating an outbound transfer.

  - `created_at` (string)
    The time when this transfer is created.
    Example: 2019-10-01T21:28:28.354Z

  - `user_info` (array, required)
    Custom information set by a RippleNet address involved in the transfer.

  - `user_info.node_address` (string, required)
    RippleNet address of the xCurrent instance that set the user information.
    Example: rn.us.ca.san_francisco

  - `user_info.state` (string, required)
    State of the transfer set when the RippleNet address set the user information.
    Enum: "PREPARED", "EXECUTED", "COMPLETED", "CANCELLED", "FAILED", "QUOTED"

  - `user_info.json` (object, required)
    One or more arbitrary key/value pairs.

  - `user_info.created_at` (string)
    timestamp of when this user info was created
    Example: 2019-10-01T21:28:28.357Z

  - `labels` (array)
    List of labels associated with this transfer
    Example: ["label1","label2","label3"]

## Response 400:

  - `400` (unknown)
    Bad request.

## Response 400 fields (application/json):

  - `type` (string)
    URL to the error documentation.
    Example: https://errors.ripplenet.ripple.com/error/json-processing-error

  - `title` (string)
    Summary of the returned problem.
    Example: Invalid Request Object

  - `detail` (string)
    Description of the returned problem.
    Example: The request parameter [account_id] is not in the correct format.

  - `status` (number)
    HTTP error code.
    Example: 400

  - `ripplenet_error_code` (string)
    RippleNet specific error code.
    Example: E0104

  - `finality` (string)
    Specifies if the request can be retried for a successful response.
    Example: PERMANENT

