Skip to content

Latest commit

 

History

History
147 lines (100 loc) · 7.26 KB

ovip-0014.md

File metadata and controls

147 lines (100 loc) · 7.26 KB
OVIP: 14
Title: Message Family: Transfer (TFR)
Author: David Riegelnig <david.riegelnig@bitcoinsuisse.com>
Discussions-To: https://community.openvasp.org/#narrow/stream/21-protocol-.2F.20ovip
Status: Accepted
Type: Standard
Created: 2020-06-14

Abstract

The OpenVASP Transfer (TFR) message familiy provides a set of messages to facilitate a structured communication between the Originator VASP and the Beneficiary VASP transferring virtual assets on behalf of their customers. The messages are specified to ensure compliance with FATF Recommendation 16, often referred to as "Travel Rule".

Message specification follows the principles for OpenVASP Application Messages defined in ovip-007 (section 5).

This specification is a refined version of the protocol flow proposed in the OpenVASP White Paper (page 15). Changes reflect the decoupling introduced with the layer model (see ovip-0009) as well as the message streamlining suggested in ovip-0006.

Message Family: Transfer (TFR)

TFR.100 - Transfer Request

Message type (type)
TFR.100

Purpose
Seeking approval from the Beneficiary VASP for a virtual asset transfer by specifying transfer details including originator and beneficiary information.

Sender
Initiator (Originator VASP)

Message structure (body)

Level 2 Level 3 Name Type Mult. Comment
Version version String 1..1 fixed value 1.0
Originator see ovip-0013 (1.2) for elements originator 1..1
Beneficiary see ovip-0013 (1.3) for elements beneficiary 1..1
Transfer transfer 1..1
Virtual asset type va String 1..1
Transfer type ttype dt.TFR.ttype 1..1
Amount amount Decimal 1..1 18 digits precision
Comment comment String 0..1

dt.TFR.ttype

Code Description
BCTX Blockchain transaction

TFR.200 - Transfer Reply

Message type (type)
TFR.200

Purpose
Response (positive or negative) to an Originator VASP having sought approval for a virtual asset transfer. If the response is positive, the destination address is specified to be used for this transfer.

Sender
Responder (Beneficiary VASP)

Message structure (body)

Level 2 Level 3 Name Type Mult. Comment
Version version String 1..1 fixed value 1.0
Reply code rcode dt.TFR.200.rcode 1..1
Transfer transfer 0..1
Destination address destadr String 1..1
Comment comment String 0..1

dt.TFR.200.rcode

Code Description
YES Transfer accepted
NO_INVALID Transfer declined; request not valid
NO_BENEFICIARY Transfer declined; no such beneficiary
NO_VA Transfer declined; virtual asset not supported
NO_AUTHORIZATION Transfer declined; transfer not authorized
NO_SERVICE Transfer declined; temporary disruption of service

TFR.300 - Transfer Dispatch

Message type (type)
TFR.300

Purpose
Notifies the Beneficiary VASP that a virtual asset transaction has been committed to the blockchain.

Sender
Initiator (Originator VASP)

Message structure (body)

Level 2 Level 3 Name Type Mult. Comment
Version version String 1..1 fixed value 1.0
Transaction tx 1..1
Transaction identifier txid String 0..1 Format specific to virtual asset / transfer type
Transaction datetime txdate String 1..1 ISO 8601 (YYYY-MM-DDThh:mm:ssZ)
Sending address txsendadr String 0..1 Blockchain-specific format, sending address used for transaction (non-UTXO systems)
Comment comment String 0..1

TFR.400 - Transfer Confirmation

Message type (type)
TFR.400

Purpose
Positive or negative acknowledgement to the Originator VASP about the receipt of virtual assets transferred via a blockchain transaction.

Sender
Responder (Beneficiary VASP)

Message structure (body)

Level 2 Name Type Mult. Comment
Version version String 1..1 fixed value 1.0
Reply code rcode dt.TFR.400.rcode 1..1
Comment comment String 0..1

dt.TFR.400.rcode

Code Description
YES Transfer confirmed
NO_RECEIPT Transfer not confirmed; assets not received
NO_INVALID Transfer not confirmed; dispatch not valid
NO_AMOUNT Transfer not confirmed; wrong amount
NO_VA Transfer not confirmed; wrong asset
NO_TXDATA Transfer not confirmed; transaction data mismatch

Backwards Compatibility

The specification proposed in this OVIP is not backwards compatible.