Jump to content

[FINTRAC] Large Virtual Currency Transaction Report Upload documentation


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 post
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 post
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...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.