Request an authorization for the transfer of virtual assets from the VASP to which the assets were transferred.

A VASP who wants to transfer an asset requests the VASP to whom the virtual asset is to be transferred for an authorization to transfer the asset. The VASP to transfer assets sends the sender's personal information at the request, and the VASP, to whom an asset is transferred, can check the sender's information and reject the transaction or authorize it with the beneficiary's personal information.
The VASP who sent a request updates the status of saved asset transfer list to verified or denied before sending the request or after receiving the response.

❗️

IVMS101

Due to the complexity of the IVMS101 standard objects, we recommend using CODE-Cipher. If it is unavoidably impossible to use due to internal security reasons, please read the IVMS101 standard section in the developer guide carefully.

Path Parameter

NameRequiredTypeDescription
BeneficiaryVaspEntityIdRequiredstringThis shall be entered as the EntityID of the VASP that owns the address to which the asset is transferred.ff

Request

📘

For the originator's personal information, as of March 25, 2022, only an individual's name is to be sent for the individual, and only information on the legal person and representative name is to be sent for the legal person.

NameRequiredType
transferIdRequiredstring
currencyRequiredstring
amountRequiredstring
historicalCostOptionalstring
tradePriceRequiredstring
tradeCurrencyRequiredstring
isExceedingThresholdRequiredstring
originatingVaspOptionalstring
payloadRequiredstring

transferId: A unique ID is required to track the status of transaction from an asset transfer authorization request through subsequent processes.
The client who sends a request generates and sends a UUID v4 value.


currency: This is a symbol of the virtual asset you want to transfer. (This is case insensitive.)


amount: This is the total volume of virtual assets you want to transfer


historicalCost: This is an acquisition cost of the virtual asset to be transferred (The requirements of National Tax Service. However, it is not used yet.)


tradePrice: This is the amount of the virtual asset transfer converted to a type of legal tender. If there is no its own price information, convert this using the price API of other VASP. Please refer to 'tradePrice' calculation below.


tradeCurrency: This is a legal tender code, which follows the ISO 4217 standard used when converting to a legal tender


isExceedingThreshold: Indicates whether the tradePrice exceeds the Travel Rule threshold specified by law.
This field is input as true or false, and if the field value is true, the Beneficiary name in the request is compared with the actual name of the Beneficiary who owns the virtual asset address.
If the field value is true and the Beneficiary name is missing or different in the request, a 'denied' response is sent.


originatingVasp: Due to the difference from other solutions, an originatingVASP object may be included outside payload. In this case, please overwrite originatingVASP of payload -> ivms101.


payload: This is an object to contain IVMS101 message. Please refer to IVMS101 Request.

📘

'tradePrice' calculation

In the "tradePrice" field, you should enter the value calculated by multiplying the quantity of the asset by its price in fiat currency. In the "tradeCurrency" field, you should specify the type of fiat currency.
For example, if you are transferring 2 BTC and the price at that moment is $42,708, then the total price is 42,708 * 2 = $85,416. In this case, you value should be as follows:

"tradePrice": "85416",
"tradeCurrency": "USD",

{
    "transferId": "681f27dd-43e4-4ea3-9bcc-607426d6349f",
    "currency": "btc",
    "amount": "2",
    "historicalCost": "",
    "tradePrice": "1000001",
    "tradeCurrency": "KRW",
    "isExceedingThreshold": "true",
    "originatingVasp": {},
    "payload": "encrypted ivms101 payload"
}

Response

NameRequiredType
resultRequiredstring
reasonTypeOptionalstring
reasonMsgOptionalstring
transferIdRequiredstring
beneficiaryVaspOptionalstring
payloadRequiredstring

result: This is a result of the previous authorization of the virtual asset.

-verified: Authorized

-denied: Deny to transfer an asset


reasonType: For denied, the type corresponding to the reason.

-NOT_FOUND_ADDRESS: This is a case where a virtual asset address cannot be found.

-NOT_SUPPORTED_SYMBOL: This is a currency symbol which cannot be traded.

-NOT_KYC_USER: This is a case where the owner did not process KYC verification.

-INPUT_NAME_MISMATCHED: The beneficiary name sent in the request message does not match the actual owner's name.

-SANCTION_LIST: Virtual asset addresses or owners are subject to the sanction of the beneficiary VASP.

-LACK_OF_INFORMATION: This is a case where there is no the information necessary to make an asset transfer decision.

-UNKNOWN: This refers to other reasons.


reasonMsg: message describing the reasonType


transferId: A unique ID is required to track the status of transaction from an asset transfer authorization request through subsequent processes. The client who sends a request generates and sends UUID.


payload(Required): This is an object to contain IVMS101 message. Please refer to IVMS101 Response .

Example

Language