Jump to content

[FINTRAC] Large Virtual Currency Transaction Report Upload documentation


TaylorWarden

Recommended Posts

Well we got big news from FINTRAC today about LVCTR Reporting today.  Here is the info:

Quote

Large Virtual Currency Transaction Report Upload documentation

 

Reporting entities dealing in virtual currency (VC) have Large Virtual Currency Transaction reporting obligations coming into force on June 1, 2021. Reporting entities can begin developing the Large Virtual Currency Transaction Report (LVCTR) Upload (a means to submit the reports to FINTRAC electronically), and test it from March 15, 2021, to May 28, 2021. The following documentation is available upon request:

 

·         Guidance on reporting Large Virtual Currency Transactions to FINTRAC;

·         Validation rules; and

·         JSON Schema.

 

Please contact guidelines-lignesdirectrices@fintrac-canafe.gc.ca for the documents or for more information.

Quote

Good morning,

 

As of June 1, 2021, reporting entities (REs) dealing in virtual currency (VC) will have the obligation to report large VC transactions to FINTRAC.  This email concerns all REs that deal in VC and provides documentation to allow them to develop the Large Virtual Currency Transaction Report (LVCTR) Upload. REs can begin testing the LVCTR Upload on March 15, 2021.  You will find attached:

 

1.       Reporting Large virtual currency transactions to FINTRAC Guidance

 

The reporting guidance describes the legislative requirements that come into force on June 1, 2021. It details when and how an RE should submit a report and other requirements associated with large virtual currency transactions. An Annex provides instructions on the information requirements to complete the report fields.

 

2.       LVCTR validation rules

 

The LVCTR validation rules are rules based on the legislative and technical requirements that allow FINTRAC to screen submitted reports. They establish the field parameters for data entry.  With the rules, FINTRAC identifies non-valid entries and missing information to ensure that the data is of high quality.

 

3.       JSON Schema

The JSON schema is the “grammar” that defines the structure, content and semantics of the LVCTR as a JSON document. The schema indicates the required JSON format by describing its organization, the expected fields, including the field type and size. REs have two JSON documents to assist them: the JSON-LD and the JSON schema file. The JSON-LD provides the reference material on how to build the JSON document and programmatically post the report to FINTRAC’s LVCTR Upload. The JSON schema file provides the application with the rules to verify the generated report output by the RE’s system to ensure that it adheres to the required criteria.

 

Please note that the attached documents are in draft form. They may be amended during the testing period, the final version of the documents will be published on our website on June 1, 2021.

 

REs can test their LVCTR Upload from March 15, 2021 to May 28, 2021 through FINTRAC Web Reporting (FWR). REs experiencing technical issues can contact FINTRAC at any time during this period.

FINTRAC understands that due to the ongoing COVID-19 pandemic, REs may face difficulty meeting the deadline to file reports using the LVCTR Upload. As an alternative, a paper form to submit LVCTRs will be available in June 2021.

 

FINTRAC is committed to working with businesses to increase their awareness and understanding of their compliance obligations under the Proceeds of Crime (Money Laundering) and Terrorist Financing Act.

 

As Canada’s financial intelligence unit and AML/ATF regulator and supervisor, FINTRAC plays a key role in helping to protect the safety of Canadians and the security of Canada’s economy.

 

For questions or more information, please contact guidelines-lignesdirectrices@fintrac-canafe.gc.ca

 

**********

Bonjour,

 

À compter du 1er juin 2021, les entités déclarantes (ED) effectuant des opérations en monnaie virtuelle (MV) auront l’obligation de déclarer les opérations importantes en MV à CANAFE.  Le présent courriel fournit de la documentation à l’intention de toutes les ED qui effectuent des opérations en MV, afin de leur permettre de mettre au point la fonction de téléchargement des déclarations d’opérations importantes en monnaie virtuelle (DOIMV). Les ED pourront commencer à mettre à l’essai le téléchargement des DOIMV à compter du 15 mars 2021.  Vous trouverez ci-joint :

 

1.       Directive de CANAFE sur la déclaration des opérations importantes en monnaie virtuelle

 

La directive sur la déclaration des opérations importantes en MV décrit les exigences législatives qui entreront en vigueur le 1er juin 2021. Elle précise à quel moment et comment les ED doivent soumettre les DOIMV et les autres exigences liées aux opérations importantes en monnaie virtuelle. Une annexe fournit également des instructions sur les informations requises pour remplir les champs de la déclaration.

 

2.       Règles de validation des DOIMV

 

Les règles de validation des DOIMV sont des règles basées sur les exigences législatives et techniques qui permettent à CANAFE de filtrer les déclarations soumises. Elles établissent les paramètres des champs pour la saisie des données. Grâce à ces règles, CANAFE identifie les données non valides et les informations manquantes pour s’assurer que les données saisies sont de qualité élevée.

 

3.       Schéma JSON

Le schéma JSON est la « grammaire » qui définit la structure, le contenu et la sémantique de la DOIMV en tant que document JSON. Le schéma indique le format JSON requis en décrivant son organisation, les champs attendus, y compris le type et la taille des champs. Les ED disposent de deux documents JSON pour les aider : le fichier JSON-LD et le fichier de schéma JSON. Le fichier JSON-LD fournit le matériel de référence sur la façon de créer le document JSON et de programmer le téléchargement de la DOIMV à CANAFE. Le fichier de schéma JSON fournit à l’application les règles permettant de vérifier la déclaration produite par le système de l’ED pour s’assurer qu’elle respecte les critères requis.

 

Veuillez noter que les documents ci-joints sont à l’état de projet. Ils peuvent être modifiés pendant la période d’essai, la version définitive des documents sera publiée sur notre site Web le 1er juin 2021.

 

Les ED peuvent mettre à l’essai leur fonction de téléchargement de DOIMV, du 15 mars 2021 au 28 mai 2021 par l’entremise du système de déclaration en ligne de CANAFE. Les ED qui éprouvent des problèmes techniques peuvent communiquer avec CANAFE en tout temps pendant cette période.

CANAFE comprend qu’en raison de la pandémie de COVID-19, les ED pourraient avoir de la difficulté à respecter la date limite pour produire des déclarations au moyen de la fonction de téléchargement de DOIMV. Comme solution de rechange, un formulaire papier sera disponible en juin 2021 pour soumettre les DOIMV.

 

CANAFE s’engage à travailler avec les entreprises pour les sensibiliser davantage à leurs obligations de conformité en vertu de la Loi sur le recyclage des produits de la criminalité et le financement des activités terroristes et les aider à mieux les comprendre.

 

En tant qu’unité de renseignement financier du Canada et organisme de réglementation et de surveillance de la lutte contre le blanchiment d’argent et le financement du terrorisme, CANAFE joue un rôle clé dans la protection de la sécurité des Canadiens et de l’économie canadienne.

 

Pour toute question ou pour en savoir plus, veuillez contacter guidelines-lignesdirectrices@fintrac-canafe.gc.ca

There are five attachments to this email but the boards do not support those file types.  Therefore I've uploaded them to Google Drive to share.  Please be advised that these are first drafts and may change.

https://docs.google.com/document/d/1NQJCPC-ye4HE66t6RBrj2IaQrKzUGhlptbVgTaqpHl0/edit?usp=sharing - DRAFT_Guidance_-_Reporting_large_virtual_currency_transactions_to_FINTRAC.PDF

https://docs.google.com/document/d/1EmsMiQnuux4o1-eTKR9p2DqAKrIwlC4LGPnoantKLOY/edit?usp=sharing - DRAFT_Guidance_-_Reporting_large_virtual_currency_transactions_to_FINTRAC_FR.PDF

https://drive.google.com/file/d/1fg-wGUZCitYn90K9yF6hBRQZ_5tiR6op/view?usp=sharing - LVCTR_Draft_Validation_Rules

https://docs.google.com/document/d/16iB3xam-uNnhdP2eX96agKmy-OYNblcZ_PElk-rTLQg/edit?usp=sharing - JSON-LD schema for large virtual currency transaction reports (LVCTR)

lvctr-2021.json:

{
$schema: "http://json-schema.org/draft-07/schema#",
$id: "http://fintrac-canafe.gc.ca/reporting/api/lvctr/2021/schema#",
title: "Large Virtual Currency Transaction Report Schema",
type: "object",
additionalProperties: false,
properties: {
$schema: {
type: "string"
},
@context: {
type: "string",
enum: [
"http://fintrac-canafe.gc.ca/reporting/api/lvctr/2021"
]
},
@type: {
type: "string",
enum: [
"LvctrForm"
]
},
reportingEntityNumber: {
type: "number"
},
reportReference: {
$ref: "#/definitions/externalReportReference"
},
definitions: {
$ref: "#/definitions/ReportDefinition"
},
details: {
$ref: "#/definitions/LvctrFormDetails"
},
transactions: {
$ref: "#/definitions/LvctrTransaction"
}
},
required: [
"@context",
"@type",
"reportingEntityNumber",
"reportReference",
"details",
"transactions"
],
definitions: {
ReportDefinition: {
type: "array",
items: {
anyOf: [
{
$ref: "#/definitions/LvctrPersonName"
},
{
$ref: "#/definitions/LvctrEntityName"
},
{
$ref: "#/definitions/LvctrPersonDetails"
},
{
$ref: "#/definitions/LvctrEntityDetails"
}
]
}
},
LvctrTransaction: {
type: "array",
minItems: 1,
maxItems: 99,
items: {
type: "object",
additionalProperties: false,
properties: {
@type: {
type: "string",
enum: [
"LvctrTransaction"
]
},
details: {
$ref: "#/definitions/LvctrTransactionDetails"
},
startingActions: {
$ref: "#/definitions/LvctrStartingAction"
},
completingActions: {
$ref: "#/definitions/LvctrCompletingAction"
}
},
required: [
"@type",
"details",
"startingActions",
"completingActions"
]
}
},
LvctrStartingAction: {
type: "array",
minItems: 1,
maxItems: 50,
items: {
type: "object",
additionalProperties: false,
properties: {
@type: {
type: "string",
enum: [
"LvctrStartingAction"
]
},
details: {
$ref: "#/definitions/LvctrStartingActionDetails"
},
sourcesOfVirtualCurrency: {
$ref: "#/definitions/LvctrSourceOfVirtualCurrency"
},
conductors: {
$ref: "#/definitions/LvctrConductor"
}
},
required: [
"@type",
"details"
]
}
},
LvctrSourceOfVirtualCurrency: {
type: "array",
items: {
type: "object",
additionalProperties: false,
properties: {
@type: {
type: "string",
enum: [
"LvctrSourceOfVirtualCurrency"
]
},
details: {
$ref: "#/definitions/LvctrSourceOfVirtualCurrencyDetails"
},
name: {
$ref: "#/definitions/definition"
}
},
required: [
"@type",
"details"
]
}
},
LvctrConductor: {
type: "array",
items: {
type: "object",
additionalProperties: false,
properties: {
@type: {
type: "string",
enum: [
"LvctrConductor"
]
},
details: {
$ref: "#/definitions/LvctrConductingDetails"
},
subject: {
$ref: "#/definitions/definition"
},
onBehalfOfs: {
$ref: "#/definitions/LvctrOnBehalfOf"
}
},
required: [
"@type",
"details"
]
}
},
LvctrOnBehalfOf: {
type: "array",
items: {
type: "object",
additionalProperties: false,
properties: {
@type: {
type: "string",
enum: [
"LvctrOnBehalfOf"
]
},
details: {
$ref: "#/definitions/LvctrOnBehalfOfDetails"
},
subject: {
$ref: "#/definitions/definition"
}
},
required: [
"@type",
"details"
]
}
},
LvctrCompletingAction: {
type: "array",
minItems: 1,
maxItems: 50,
items: {
type: "object",
additionalProperties: false,
properties: {
@type: {
type: "string",
enum: [
"LvctrCompletingAction"
]
},
details: {
$ref: "#/definitions/LvctrCompletingActionDetails"
},
accountHolders: {
$ref: "#/definitions/LvctrAccountHolder"
},
involvements: {
$ref: "#/definitions/LvctrInvolvement"
},
beneficiaries: {
$ref: "#/definitions/LvctrBeneficiary"
}
},
required: [
"@type",
"details"
]
}
},
LvctrAccountHolder: {
type: "array",
items: {
type: "object",
additionalProperties: false,
properties: {
@type: {
type: "string",
enum: [
"LvctrAccountHolder"
]
},
details: {
$ref: "#/definitions/LvctrAccountHolderDetails"
},
name: {
$ref: "#/definitions/definition"
}
},
required: [
"@type",
"details"
]
}
},
LvctrInvolvement: {
type: "array",
items: {
type: "object",
additionalProperties: false,
properties: {
@type: {
type: "string",
enum: [
"LvctrInvolvement"
]
},
details: {
$ref: "#/definitions/LvctrInvolvementDetails"
},
name: {
$ref: "#/definitions/definition"
}
},
required: [
"@type",
"details"
]
}
},
LvctrBeneficiary: {
type: "array",
items: {
type: "object",
additionalProperties: false,
properties: {
@type: {
type: "string",
enum: [
"LvctrBeneficiary"
]
},
details: {
$ref: "#/definitions/LvctrBenefitingDetails"
},
subject: {
$ref: "#/definitions/definition"
}
},
required: [
"@type",
"details"
]
}
},
LvctrFormDetails: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrFormDetails"
]
},
twentyFourHourAggregationTypeCode: {
$ref: "#/definitions/optionTypeCode"
},
twentyFourHourStartDateTime: {
$ref: "#/definitions/zonedDateTime"
},
twentyFourHourEndDateTime: {
$ref: "#/definitions/zonedDateTime"
},
ministerialDirectiveCode: {
$ref: "#/definitions/string10"
},
activitySectorCode: {
$ref: "#/definitions/optionTypeCode"
},
contactNumber: {
$ref: "#/definitions/contactNumber"
}
},
required: [
"@type"
]
},
LvctrTransactionDetails: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrTransactionDetails"
]
},
thresholdIndicator: {
$ref: "#/definitions/boolean"
},
transactionReference: {
$ref: "#/definitions/string20"
},
transactionDateTime: {
$ref: "#/definitions/zonedDateTime"
},
transactionMethodTypeCode: {
$ref: "#/definitions/optionTypeCode"
},
transactionMethodTypeOther: {
$ref: "#/definitions/string200"
},
transactionIdentifiers: {
type: "array",
items: {
$ref: "#/definitions/string200"
}
},
transactionPurpose: {
$ref: "#/definitions/string200"
},
locationReference: {
$ref: "#/definitions/locationReference"
}
},
required: [
"@type"
]
},
LvctrStartingActionDetails: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrStartingActionDetails"
]
},
virtualCurrencyAmount: {
$ref: "#/definitions/currencyAmount"
},
virtualCurrencyTypeCode: {
$ref: "#/definitions/string100"
},
virtualCurrencyTypeOther: {
$ref: "#/definitions/string200"
},
canadianExchangeRate: {
$ref: "#/definitions/string20"
},
sendingVirtualCurrencyAddresses: {
type: "array",
items: {
$ref: "#/definitions/string200"
}
},
obtained: {
$ref: "#/definitions/string200"
},
sourceOfVirtualCurrencyIndicator: {
$ref: "#/definitions/boolean"
},
conductorIndicator: {
$ref: "#/definitions/boolean"
}
},
required: [
"@type"
]
},
LvctrCompletingActionDetails: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrCompletingActionDetails"
]
},
dispositionTypeCode: {
$ref: "#/definitions/optionTypeCode"
},
dispositionTypeOther: {
$ref: "#/definitions/string200"
},
virtualCurrencyAmount: {
$ref: "#/definitions/currencyAmount"
},
virtualCurrencyTypeCode: {
$ref: "#/definitions/string100"
},
virtualCurrencyTypeOther: {
$ref: "#/definitions/string200"
},
receivingVirtualCurrencyAddresses: {
type: "array",
items: {
$ref: "#/definitions/string200"
}
},
currencyTypeCode: {
$ref: "#/definitions/alpha3"
},
canadianEquivalentAmount: {
$ref: "#/definitions/currencyAmount"
},
referenceNumber: {
$ref: "#/definitions/string200"
},
otherRelatedNumber: {
$ref: "#/definitions/string200"
},
financialInstitutionNumber: {
$ref: "#/definitions/string50"
},
branchNumber: {
$ref: "#/definitions/string50"
},
accountNumber: {
$ref: "#/definitions/string50"
},
accountTypeCode: {
$ref: "#/definitions/optionTypeCode"
},
accountTypeOther: {
$ref: "#/definitions/string200"
},
accountCurrencyTypeCode: {
$ref: "#/definitions/alpha3"
},
accountVirtualCurrencyTypeCode: {
$ref: "#/definitions/string100"
},
accountVirtualCurrencyTypeOther: {
$ref: "#/definitions/string200"
},
accountOpenDate: {
$ref: "#/definitions/localDate"
},
involvementIndicator: {
$ref: "#/definitions/boolean"
},
beneficiaryIndicator: {
$ref: "#/definitions/boolean"
}
},
required: [
"@type"
]
},
LvctrSourceOfVirtualCurrencyDetails: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrSourceOfVirtualCurrencyDetails"
]
},
accountNumber: {
$ref: "#/definitions/string50"
},
policyNumber: {
$ref: "#/definitions/string50"
},
identifyingNumber: {
$ref: "#/definitions/string50"
}
},
required: [
"@type"
]
},
LvctrConductingDetails: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrConductingDetails"
]
},
clientIndicator: {
$ref: "#/definitions/boolean"
},
clientNumber: {
$ref: "#/definitions/string50"
},
username: {
$ref: "#/definitions/string200"
},
email: {
$ref: "#/definitions/string200"
},
deviceTypeCode: {
$ref: "#/definitions/optionTypeCode"
},
deviceTypeOther: {
$ref: "#/definitions/string200"
},
deviceIdentificationNumber: {
$ref: "#/definitions/string200"
},
deviceIpAddress: {
$ref: "#/definitions/string200"
},
requestDateTime: {
$ref: "#/definitions/zonedDateTime"
},
onBehalfOfIndicator: {
$ref: "#/definitions/boolean"
}
},
required: [
"@type"
]
},
LvctrBenefitingDetails: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrBenefitingDetails"
]
},
clientNumber: {
$ref: "#/definitions/string50"
},
username: {
$ref: "#/definitions/string200"
},
email: {
$ref: "#/definitions/string200"
}
},
required: [
"@type"
]
},
LvctrOnBehalfOfDetails: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrOnBehalfOfDetails"
]
},
clientNumber: {
$ref: "#/definitions/string50"
},
email: {
$ref: "#/definitions/string200"
},
relationshipTypeCode: {
$ref: "#/definitions/optionTypeCode"
},
relationshipTypeOther: {
$ref: "#/definitions/string200"
}
},
required: [
"@type"
]
},
LvctrAccountHolderDetails: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrAccountHolderDetails"
]
},
username: {
$ref: "#/definitions/string200"
}
},
required: [
"@type"
]
},
LvctrInvolvementDetails: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrInvolvementDetails"
]
},
accountNumber: {
$ref: "#/definitions/string50"
},
policyNumber: {
$ref: "#/definitions/string50"
},
identifyingNumber: {
$ref: "#/definitions/string50"
}
},
required: [
"@type"
]
},
LvctrPersonIdentificationDetails: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrPersonIdentificationDetails"
]
},
identificationTypeCode: {
$ref: "#/definitions/optionTypeCode"
},
identificationTypeOther: {
$ref: "#/definitions/string200"
},
identificationNumber: {
$ref: "#/definitions/string50"
},
identificationJurisdictionCountryCode: {
$ref: "#/definitions/alpha2"
},
identificationJurisdictionProvinceCode: {
$ref: "#/definitions/alpha2"
},
identificationJurisdictionProvinceOther: {
$ref: "#/definitions/string100"
}
},
required: [
"@type"
]
},
LvctrEntityIdentificationDetails: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrEntityIdentificationDetails"
]
},
identificationTypeCode: {
$ref: "#/definitions/optionTypeCode"
},
identificationTypeOther: {
$ref: "#/definitions/string200"
},
identificationNumber: {
$ref: "#/definitions/string50"
},
identificationJurisdictionCountryCode: {
$ref: "#/definitions/alpha2"
},
identificationJurisdictionProvinceCode: {
$ref: "#/definitions/alpha2"
},
identificationJurisdictionProvinceOther: {
$ref: "#/definitions/string100"
}
},
required: [
"@type"
]
},
LvctrStructuredAddress: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrStructuredAddress"
]
},
unitNumber: {
$ref: "#/definitions/string10"
},
buildingNumber: {
$ref: "#/definitions/string10"
},
streetAddress: {
$ref: "#/definitions/string100"
},
city: {
$ref: "#/definitions/string100"
},
district: {
$ref: "#/definitions/string100"
},
countryCode: {
$ref: "#/definitions/alpha2"
},
provinceCode: {
$ref: "#/definitions/alpha2"
},
provinceOther: {
$ref: "#/definitions/string100"
},
locality: {
$ref: "#/definitions/string100"
},
postalCode: {
$ref: "#/definitions/string20"
}
},
required: [
"@type"
]
},
LvctrUnstructuredAddress: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrUnstructuredAddress"
]
},
unstructuredCountryCode: {
$ref: "#/definitions/alpha2"
},
unstructuredAddressDetails: {
$ref: "#/definitions/string500"
}
},
required: [
"@type"
]
},
LvctrPersonDetails: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrPersonDetails"
]
},
$id: {
$ref: "#/definitions/string32"
},
givenName: {
$ref: "#/definitions/string100"
},
other: {
$ref: "#/definitions/string100"
},
surname: {
$ref: "#/definitions/string100"
},
alias: {
$ref: "#/definitions/string100"
},
address: {
oneOf: [
{
$ref: "#/definitions/LvctrStructuredAddress"
},
{
$ref: "#/definitions/LvctrUnstructuredAddress"
}
]
},
telephoneNumber: {
$ref: "#/definitions/string20"
},
telephoneExtension: {
$ref: "#/definitions/string10"
},
birthDate: {
$ref: "#/definitions/localDate"
},
residenceCountryCode: {
$ref: "#/definitions/string200"
},
occupation: {
$ref: "#/definitions/string200"
},
employerName: {
$ref: "#/definitions/string100"
},
identifications: {
type: "array",
items: {
$ref: "#/definitions/LvctrPersonIdentificationDetails"
}
}
},
required: [
"@type"
]
},
LvctrEntityDetails: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrEntityDetails"
]
},
$id: {
$ref: "#/definitions/string32"
},
legalName: {
$ref: "#/definitions/string100"
},
address: {
oneOf: [
{
$ref: "#/definitions/LvctrStructuredAddress"
},
{
$ref: "#/definitions/LvctrUnstructuredAddress"
}
]
},
telephoneNumber: {
$ref: "#/definitions/string20"
},
telephoneExtension: {
$ref: "#/definitions/string10"
},
businessNature: {
$ref: "#/definitions/string200"
},
registrationIndicator: {
$ref: "#/definitions/boolean"
},
registrationNumber: {
$ref: "#/definitions/string50"
},
registrationJurisdictionCountryCode: {
$ref: "#/definitions/alpha2"
},
registrationJurisdictionProvinceCode: {
$ref: "#/definitions/alpha2"
},
registrationJurisdictionProvinceOther: {
$ref: "#/definitions/string100"
},
identifications: {
type: "array",
items: {
$ref: "#/definitions/LvctrEntityIdentificationDetails"
}
},
authorizedPersons: {
type: "array",
items: {
$ref: "#/definitions/LvctrPersonName"
}
}
},
required: [
"@type"
]
},
LvctrPersonName: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrPersonName"
]
},
$id: {
$ref: "#/definitions/string32"
},
givenName: {
$ref: "#/definitions/string100"
},
other: {
$ref: "#/definitions/string100"
},
surname: {
$ref: "#/definitions/string100"
}
},
required: [
"@type"
]
},
LvctrEntityName: {
type: "object",
additionalProperties: false,
properties: {
@type: {
enum: [
"LvctrEntityName"
]
},
$id: {
$ref: "#/definitions/string32"
},
legalName: {
$ref: "#/definitions/string100"
}
},
required: [
"@type"
]
},
definition: {
type: "object",
properties: {
$ref: {
type: "string",
pattern: "^[a-z0-9]{1,32}$"
}
}
},
externalReportReference: {
type: "string",
pattern: "[A-Z0-9_]+"
},
contactNumber: {
type: "number",
minimum: 0
},
locationReference: {
type: "string",
pattern: "[A-Z0-9_]+"
},
alpha2: {
type: "string",
minLength: 2,
maxLength: 2
},
alpha3: {
type: "string",
minLength: 3,
maxLength: 3
},
string10: {
type: "string",
minLength: 0,
maxLength: 10
},
string20: {
type: "string",
minLength: 0,
maxLength: 20
},
string32: {
type: "string",
minLength: 0,
maxLength: 32
},
string50: {
type: "string",
minLength: 0,
maxLength: 50
},
string100: {
type: "string",
minLength: 0,
maxLength: 100
},
string200: {
type: "string",
minLength: 0,
maxLength: 200
},
string500: {
type: "string",
minLength: 0,
maxLength: 500
},
lookup: {
type: "number",
minimum: 0
},
integer: {
type: "number",
minimum: 0
},
optionTypeCode: {
type: "integer",
minimum: 1,
maximum: 99999
},
currencyAmount: {
type: "string",
pattern: "^[0-9]*(\.[0-9]+)?$"
},
zonedDateTime: {
type: "string",
pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[\-\+][0-9]{2}:[0-9]{2}$"
},
localDate: {
type: "string",
pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
},
boolean: {
type: "boolean"
}
}
}

Lots to discuss but I will be spending the weekend diving into these documents.  Once I have read them, I will return with my commentary.  In the meanwhile, please discuss.

Edited by TaylorWarden
Link to comment
Share on other sites

I am still preparing some commentary on this topic but I require further clarification from FINTRAC, therefore I have sent them this email to clarify my duties as a reporting entity:

Quote

To whom it may concern,

 

My name is Taylor Warden and I operate a money services business which is known as a Ripple Gateway.  I am writing this email to you today to request clarification on the Large Virtual Currency Reporting Requirements which will go into effect on June 1, 2021.

 

In the course of my business' activities, we may conduct business with clients where they wish to deposit virtual currencies into custody of our company and receive cryptographic IOUs for claim on these assets over the Ripple Consensus Ledger (now more commonly referred to as the XRP Ledger).  My main question is if a client conducts a trade of virtual currency IOUs over the Decentralized Exchange feature present in the RCL to another user of the network, will I be required to report a LVCTR to FINTRAC at the time that the client has traded their virtual currency IOUs to another user of the network? Or would I only be required to submit a report when a trade has occurred and the user who received the transacted virtual currency IOUs submits a withdrawal request to the Ripple Gateway for processing?

 

Thank you for your clarification on this topic,

 

Taylor Warden

8569541 CANADA INC

CEO

 

Link to comment
Share on other sites

  • 3 weeks later...

I have not yet received a response about my previous email sent to FINTRAC.

I received an email from FINTRAC's mailing list yesterday stating that LVCTRs can now be tested.  They will also offer paper filing options for those who cannot complete the JSON-LD format schema.  When the reporting framework has been updated June 1, 2021, there will be an online filing option and paper filing will no longer be available.

Link to comment
Share on other sites

  • 1 month later...

I finally received a reply to my earlier request for clarification.  Here is the email that I received from FINTRAC:

Quote

Dear Taylor Warden,

 

Thank you for contacting the Financial Transactions and Reports Analysis Centre of Canada (FINTRAC), Canada's independent agency responsible for the receipt, analysis, assessment and disclosure of information in order to assist in the detection, prevention and deterrence of money laundering and the financing of terrorist activities in Canada and abroad.

 

I am writing further to your email of February 22nd, 2021, wherein you requested clarification regarding your obligation as a money services business (MSB) to submit a large virtual currency transaction report (LVCTR). I apologize for the delay in responding.

 

As you may know, pursuant to the amended Proceeds of Crime (Money Laundering) and Terrorist Financing Regulations (PCMLTFR), which will come into force on June 1st, 2021:

 

·       Subsection 1(2) virtual currency means:

o   (a) a digital representation of value that can be used for payment or investment purposes, that is not a fiat currency and that can be readily exchanged for funds or for another virtual currency that can be readily exchanged for funds; or

o   (b) a private key of a cryptographic system that enables a person or entity to have access to a digital representation of value referred to in paragraph (a).

 

·       Paragraph 30(1)(f) – MSBs shall report the receipt from a person or entity of an amount of $10,000 or more in virtual currency (VC) in a single transaction;

 

·       Section 36 – MSBs shall keep the following records:

o   (g) if they transfer an amount of $1,000 or more in virtual currency at the request of a person or entity;

o   (h) if they receive an amount of $1,000 or more in virtual currency for remittance to a beneficiary;

o   (j) a virtual currency exchange transaction ticket in respect of every virtual currency exchange transaction.

 

·       Subsection 124.1(1) – MSBs shall, with respect to a virtual currency transfer that they are required to keep a record of:

o   (a) include, with the transfer, the name, address and, if any, the account number or other reference number of both the person or entity who requested the transfer and the beneficiary; and

o   (b) take reasonable measures to ensure that any transfer received includes the information referred to in paragraph (a).

 

First, it is important to note that MSBs are only required to submit an LVCTR when they are in receipt of VC (in an amount of $10,000 or more) from a person or entity. You specify in your email that a client can “receive cryptographic IOUs for claim on these assets over the Ripple Consensus Ledger”. Based on this, it would seem that the IOU itself would qualify as a VC, as defined by the amended PCMLTFR. Therefore, when you are in receipt of these IOUs in an amount equivalent to $10,000 CAD or more, in one or more transactions within a consecutive 24-hour period, you are required to submit an LVCTR to FINTRAC.

 

As such, when the client deposits VC into your custody, you are in receipt of VC and if the amount is equivalent to $10,000 CAD or more, an LVCTR is required. It is my understanding that when your client trades their IOUs with another user of the XRP ledger, they receive the traded IOU into their wallet with you. Therefore, you would be in receipt of VC and if the amount is equivalent to $10,000 CAD or more an LVCTR is required. Should this not be the case, please do not hesitate to follow-up.

 

While you are not required to submit an LVCTR to FINTRAC when you send VC on behalf of a client, you should consider the scenarios outlined in your email against the obligations outlined above.

 

I trust this information will be of assistance.

 

Jessica Stewart

 

Compliance Sector | Secteur de la conformité

Financial Transactions and Reports Analysis Centre of Canada | Centre d’analyse des operations et declarations financières du Canada

 

Government of Canada | Gouvernement du Canada

 

The determination contained herein is provided to your organization on the understanding that it is based solely on the facts and information provided to FINTRAC and may be subject to change in the event additional information becomes available. | La détermination contenue dans la présente repose uniquement sur les faits et l’information fournis à CANAFE et pourrait être modifiée si des informations supplémentaires sont portées à notre connaissance.

So I have received my answer and clarified my obligations as an MSB whenever the Decentralized Exchange is utilized to trade VC.  These new requirements will require me to monitor for payments on every account that has a balance of at least 10,000$CAD so I can submit a LVCTR when a trade for large amounts of IOUs (VC as defined in the email) occurs.

Please discuss.

Link to comment
Share on other sites

12 hours ago, TaylorWarden said:

Please discuss.

I read it to mean that if a customer sends >$10k to another customer and only uses your interface to make the transfer - you do not have to file a report.

If a customer sends >$10k to/from a wallet to are custodian of, and from/to another - you do have to file a report.

12 hours ago, TaylorWarden said:

These new requirements will require me to monitor for payments on every account that has a balance of at least 10,000$CAD so I can submit a LVCTR when a trade for large amounts of IOUs (VC as defined in the email) occurs.

Only if they pass through one of your hosted wallets and you hold the keys for them. (I assume that you are hosting wallets on behalf of customers, otherwise you would not be bothered by this).

It will be a lot of paperwork, but at least it can all be generated automagically by the software. Seems like the same rules that apply basically everywhere to counter AML/KYC issues.

Link to comment
Share on other sites

4 hours ago, jbjnr said:

I read it to mean that if a customer sends >$10k to another customer and only uses your interface to make the transfer - you do not have to file a report.

If a customer sends >$10k to/from a wallet to are custodian of, and from/to another - you do have to file a report.

Only if they pass through one of your hosted wallets and you hold the keys for them. (I assume that you are hosting wallets on behalf of customers, otherwise you would not be bothered by this).

It will be a lot of paperwork, but at least it can all be generated automagically by the software. Seems like the same rules that apply basically everywhere to counter AML/KYC issues.

The way that I read it I believe that any trade that occurs on the ledger amounting to 10,000$CAD or more, even if I do not offer an XRPL client on my website (which I don't).  I do have the option for segregated accounts when depositing numismatic precious metals but they are not hosted wallets in so much that there are dedicated, separate issuers for those kinds of IOUs and are created on a for customer basis.  I think I will have to write back to this compliance officer today and ask for some further clarification.

Link to comment
Share on other sites

5 hours ago, TaylorWarden said:

The way that I read it I believe that any trade that occurs on the ledger amounting to 10,000$CAD or more, even if I do not offer an XRPL client on my website (which I don't).  I do have the option for segregated accounts when depositing numismatic precious metals but they are not hosted wallets in so much that there are dedicated, separate issuers for those kinds of IOUs and are created on a for customer basis.  I think I will have to write back to this compliance officer today and ask for some further clarification.

If I deposit some precious item with you, and you issue me an IOU for >$10K worth of the item. Report necessary. If I now send/sell/trade my IOU to someone else and you are not involved and the wallet used is nothing to do with you, then you're ok (I think). If I send the IOU, but it comes from a wallet that you are somehow responsible for (multi-sign wallet, with you having keys maybe?), then I think the report must be filed. I suspect you are right to ask for clarification - we've seen what happens when the rules are not clear and you get sued later ...).

I'm curious - do you have real customers doing this kind of thing?

Link to comment
Share on other sites

On 4/20/2021 at 3:21 PM, jbjnr said:

If I deposit some precious item with you, and you issue me an IOU for >$10K worth of the item. Report necessary. If I now send/sell/trade my IOU to someone else and you are not involved and the wallet used is nothing to do with you, then you're ok (I think). If I send the IOU, but it comes from a wallet that you are somehow responsible for (multi-sign wallet, with you having keys maybe?), then I think the report must be filed. I suspect you are right to ask for clarification - we've seen what happens when the rules are not clear and you get sued later ...).

I'm curious - do you have real customers doing this kind of thing?

I am afraid that I believe that I am still obligated to file even if I am not the intermediary of performing the XRPL transaction.  I believe if the issuance of an IOU that is considered 10K or greater that is traded because the beneficiary of that amount of IOUs changes to a new account, I would be obligated to file.  If you trade >=10K with my market making account (which we do not have the means to fund to that level) then I would have to file.  I would also have to file for any deposit or withdrawal transaction a user commits to the Ripple Gateway.

I do not have customers performing these high volume trades with me.  I will say that the greatest amount of funds deposited to a Gateway I have run in the past was 3000$ plus fee (to equal 3K IOUs issued) and the greatest withdrawal transaction I have performed to date would be approximately 3300$ and change.

Link to comment
Share on other sites

I have wrote another follow-up email for clarification from FINTRAC:

Quote

Good morning Mrs. Stewart,

I am writing to you again today to thank you for some of the clarification you provided.  Unfortunately, I am still unclear on a few things and require some further clarification.  In your previous email you had wrote:

It is my understanding that when your client trades their IOUs with another user of the XRP ledger, they receive the traded IOU into their wallet with you. Therefore, you would be in receipt of VC and if the amount is equivalent to $10,000 CAD or more an LVCTR is required. Should this not be the case, please do not hesitate to follow-up.

I first read it to mean that if a customer sends >$10k to another customer and only uses my interface to make the transfer (which I do not offer) - you do not have to file a report. If a customer sends >$10k to/from a wallet to that I am a custodian of, and from/to another (which again I do not offer) - you do have to file a report.  I also do not offer hosted wallets where I hold the private keys.  But then I read what you wrote again and I came to think that this would require me to monitor for payments on every account that has a balance of at least 10,000$CAD so I can submit a LVCTR when a trade for large amounts of IOUs (VC as defined in the email) occurs at >10K$CAD.

I would also like to make you aware of a feature of the XRP Ledger that would cause a problem with sending in a LVCTR.  Please see the documentation found at https://xrpl.org/authorized-trust-lines.html#requireauth-setting 

Our company values the belief that the XRP Ledger should be an open, pseudo anonymous network for its community of users.  As such, we did not and cannot set the requireAuth setting for the issuing account on the XRP Ledger that we do business with as it already has built trust-lines with this feature turned off.  Therefore, any users in the XRP Ledger community has the option of creating a trust-line to us for any of the asset codes/classes we offer; From precious metals, to fiat currency, to cryptocurrencies (defined as virtual currency).  There is a possible scenario when a user who has been KYC'd in the company could proceed to offer a trade for >=10K$CAD for another IOU on the Decentralized Exchange from another user who has not yet completed KYC with the Ripple Gateway who could then purchase those IOUs (defined as VC in your previous email) and I would have no way to submit information such as the address requirement, just the details of which XRPL account took the IOUs at the time of the trade.

As such, I require more clarification as to what I would have to do in regards to the new requirements in a situation such as outlined above.

Thank you for your time,

Taylor Warden

8569541 CANADA INC

CEO

 

Link to comment
Share on other sites

  • 2 months later...

I just received a reply from a representative at FINTRAC in regards to my last post/email to them. 

Quote

Hi Taylor,

Thank you for your email of April 23rd, 2021, wherein you requested additional clarification regarding large virtual currency transaction reports (LVCTRs). I apologize for the delay in responding.

As a reminder, money services businesses (MSBs) are required to submit an LVCTR when they receive virtual currency (VC) in an amount equivalent to $10,000 or more from a client in the course of a single transaction. There is no obligation to submit an LVCTR to FINTRAC when your clients ask you to transfer VC. That said, there are other obligations that apply to the transfer of VC at the request of a client, such as record keeping and client identification requirements.

There is also no requirement to submit an LVCTR when a client asks you to exchange the VC they already hold with you for funds or another VC. However, if you receive $10,000 in VC from a client in order to complete a VC exchange transaction then an LVCTR would be required. There is also additional record keeping and client identification obligations associated with the exchange of VC. More information on these obligations can be found on our website, including the now published LVCTR reporting guidance.

You note that “I also do not offer hosted wallets where I hold the private keys.” If your business does not have custody of the VC being added to your client’s wallet, then you, as the MSB, are not in receipt of that VC and are not required to submit an LVCTR.

FINTRAC understands that there is a wide variety of VCs that all function differently and understands that some reporting entities (REs) may experience certain challenges in meeting their obligations as of June 1, 2021. However, REs are required to comply with their legislative obligations as outlined in the Proceeds of Crime (Money Laundering) and Terrorist Financing Act (PCMLTFA) and its associated Regulations. There are no exceptions to compliance based on the type of VC involved in the transaction. As part of an RE’s compliance program, they must set out how they will meet their obligations based on the activities and products they offer. Wherever possible, FINTRAC is committed to working constructively with REs.

Should you have a specific question on how to report an LVCTR based on a particular transaction, please do not hesitate to follow-up.

I trust this information will be of assistance.

Jessica Stewart

Compliance Sector | Secteur de la conformité

Financial Transactions and Reports Analysis Centre of Canada | Centre d’analyse des operations et declarations financières du Canada

Government of Canada | Gouvernement du Canada

The determination contained herein is provided to your organization on the understanding that it is based solely on the facts and information provided to FINTRAC and may be subject to change in the event additional information becomes available. | La détermination contenue dans la présente repose uniquement sur les faits et l’information fournis à CANAFE et pourrait être modifiée si des informations supplémentaires sont portées à notre connaissance.

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...