Created
July 23, 2023 19:59
-
-
Save georgeben/0c594bad5aaae1ebb31674f7dd1bcc4e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "$schema": "http://json-schema.org/draft-07/schema#", | |
| "$id": "http://fintrac-canafe.gc.ca/reporting-gen2/api/str/v1/schema#", | |
| "title": "Suspicious Transaction Report Schema", | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "reportDetails": { | |
| "type": "object", | |
| "minItems": 1, | |
| "additionalProperties": false, | |
| "properties": {}, | |
| "required": [ | |
| "reportTypeCode", | |
| "submitTypeCode", | |
| "reportingEntityNumber", | |
| "submittingReportingEntityNumber", | |
| "reportingEntityReportReference", | |
| "reportingEntityContactId" | |
| ] | |
| }, | |
| "detailsOfSuspicion": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "discriptionOfSuspiciousActivity": { | |
| "$ref": "#/definitions/string" | |
| }, | |
| "suspicionTypeCode": { | |
| "$ref": "#/definitions/optionTypeCode" | |
| }, | |
| "publicPrivatePartnershipProjectNameCodes": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/optionTypeCode" | |
| } | |
| }, | |
| "politicallyExposedPersonIncludedIndicator": { | |
| "type": "boolean" | |
| } | |
| }, | |
| "required": [ | |
| "publicPrivatePartnershipProjectNameCodes" | |
| ] | |
| }, | |
| "relatedReports": {}, | |
| "actionTaken": {}, | |
| "definitions": { | |
| "$ref": "#/definitions/personEntityData" | |
| }, | |
| "transactions": {} | |
| }, | |
| "required": [ | |
| "reportDetails", | |
| "detailsOfSuspicion", | |
| "relatedReports", | |
| "definitions", | |
| "transactions" | |
| ], | |
| "definitions": { | |
| "personEntityData": { | |
| "type": "array", | |
| "items": { | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/personName" | |
| }, | |
| { | |
| "$ref": "#/definitions/entityName" | |
| }, | |
| { | |
| "$ref": "#/definitions/personDetails" | |
| }, | |
| { | |
| "$ref": "#/definitions/entityDetails" | |
| }, | |
| { | |
| "$ref": "#/definitions/personAndEmployerDetails" | |
| }, | |
| { | |
| "$ref": "#/definitions/entityAndBeneficialOwnershipDetails" | |
| } | |
| ] | |
| } | |
| }, | |
| "personName": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "typeCode": { | |
| "enum": [ | |
| 1 | |
| ] | |
| }, | |
| "refId": { | |
| "$ref": "#/definitions/string50" | |
| }, | |
| "givenName": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "surname": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "otherNameInitial": { | |
| "$ref": "#/definitions/string100" | |
| } | |
| }, | |
| "required": [ | |
| "typeCode", | |
| "refId" | |
| ] | |
| }, | |
| "entityName": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "typeCode": { | |
| "enum": [ | |
| 2 | |
| ] | |
| }, | |
| "refId": { | |
| "$ref": "#/definitions/string50" | |
| }, | |
| "nameOfEntity": { | |
| "$ref": "#/definitions/string100" | |
| } | |
| }, | |
| "required": [ | |
| "typeCode", | |
| "refId" | |
| ] | |
| }, | |
| "personDetails": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "typeCode": { | |
| "enum": [ | |
| 3 | |
| ] | |
| }, | |
| "refId": { | |
| "$ref": "#/definitions/string50" | |
| }, | |
| "surname": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "givenName": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "otherNameInitial": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "alias": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "addressTypeCode": { | |
| "enum": [ | |
| 1, | |
| 2 | |
| ] | |
| }, | |
| "address": { | |
| "oneOf": [ | |
| { | |
| "$ref": "#/definitions/structuredAddress" | |
| }, | |
| { | |
| "$ref": "#/definitions/unstructuredAddress" | |
| } | |
| ] | |
| }, | |
| "telephoneNumber": { | |
| "$ref": "#/definitions/string20" | |
| }, | |
| "extensionNumber": { | |
| "$ref": "#/definitions/string10" | |
| }, | |
| "dateOfBirth": { | |
| "$ref": "#/definitions/localDate" | |
| }, | |
| "countryOfResidenceCode": { | |
| "$ref": "#/definitions/alpha2" | |
| }, | |
| "occupation": { | |
| "$ref": "#/definitions/string200" | |
| }, | |
| "nameOfEmployer": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "identifications": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/identification" | |
| } | |
| } | |
| }, | |
| "required": [ | |
| "typeCode", | |
| "refId", | |
| "identifications" | |
| ] | |
| }, | |
| "entityDetails": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "typeCode": { | |
| "enum": [ | |
| 4 | |
| ] | |
| }, | |
| "refId": { | |
| "$ref": "#/definitions/string50" | |
| }, | |
| "nameOfEntity": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "addressTypeCode": { | |
| "enum": [ | |
| 1, | |
| 2 | |
| ] | |
| }, | |
| "address": { | |
| "oneOf": [ | |
| { | |
| "$ref": "#/definitions/structuredAddress" | |
| }, | |
| { | |
| "$ref": "#/definitions/unstructuredAddress" | |
| } | |
| ] | |
| }, | |
| "telephoneNumber": { | |
| "$ref": "#/definitions/string20" | |
| }, | |
| "extensionNumber": { | |
| "$ref": "#/definitions/string10" | |
| }, | |
| "natureOfPrincipalBusiness": { | |
| "$ref": "#/definitions/string200" | |
| }, | |
| "registrationIncorporationIndicator": { | |
| "type": "boolean" | |
| }, | |
| "registrationsIncorporations": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/registrationIncorporation" | |
| } | |
| }, | |
| "identifications": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/identification" | |
| } | |
| }, | |
| "authorizedPersons": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/authorizedPerson" | |
| } | |
| } | |
| }, | |
| "required": [ | |
| "typeCode", | |
| "refId", | |
| "registrationsIncorporations", | |
| "identifications", | |
| "authorizedPersons" | |
| ] | |
| }, | |
| "personAndEmployerDetails": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "typeCode": { | |
| "enum": [ | |
| 5 | |
| ] | |
| }, | |
| "refId": { | |
| "$ref": "#/definitions/string50" | |
| }, | |
| "surname": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "givenName": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "otherNameInitial": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "alias": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "addressTypeCode": { | |
| "enum": [ | |
| 1, | |
| 2 | |
| ] | |
| }, | |
| "address": { | |
| "oneOf": [ | |
| { | |
| "$ref": "#/definitions/structuredAddress" | |
| }, | |
| { | |
| "$ref": "#/definitions/unstructuredAddress" | |
| } | |
| ] | |
| }, | |
| "telephoneNumber": { | |
| "$ref": "#/definitions/string20" | |
| }, | |
| "extensionNumber": { | |
| "$ref": "#/definitions/string10" | |
| }, | |
| "dateOfBirth": { | |
| "$ref": "#/definitions/localDate" | |
| }, | |
| "countryOfResidenceCode": { | |
| "$ref": "#/definitions/alpha2" | |
| }, | |
| "countryOfCitizenshipCode": { | |
| "$ref": "#/definitions/alpha2" | |
| }, | |
| "occupation": { | |
| "$ref": "#/definitions/string200" | |
| }, | |
| "employerInformation": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "name": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "addressTypeCode": { | |
| "enum": [ | |
| 1, | |
| 2 | |
| ] | |
| }, | |
| "address": { | |
| "oneOf": [ | |
| { | |
| "$ref": "#/definitions/structuredAddress" | |
| }, | |
| { | |
| "$ref": "#/definitions/unstructuredAddress" | |
| } | |
| ] | |
| }, | |
| "telephoneNumber": { | |
| "$ref": "#/definitions/string20" | |
| }, | |
| "extensionNumber": { | |
| "$ref": "#/definitions/string10" | |
| } | |
| } | |
| }, | |
| "identifications": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/identification" | |
| } | |
| } | |
| }, | |
| "required": [ | |
| "typeCode", | |
| "refId", | |
| "identifications" | |
| ] | |
| }, | |
| "entityAndBeneficialOwnershipDetails": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "typeCode": { | |
| "enum": [ | |
| 6 | |
| ] | |
| }, | |
| "refId": { | |
| "$ref": "#/definitions/string50" | |
| }, | |
| "nameOfEntity": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "addressTypeCode": { | |
| "enum": [ | |
| 1, | |
| 2 | |
| ] | |
| }, | |
| "address": { | |
| "oneOf": [ | |
| { | |
| "$ref": "#/definitions/structuredAddress" | |
| }, | |
| { | |
| "$ref": "#/definitions/unstructuredAddress" | |
| } | |
| ] | |
| }, | |
| "telephoneNumber": { | |
| "$ref": "#/definitions/string20" | |
| }, | |
| "extensionNumber": { | |
| "$ref": "#/definitions/string10" | |
| }, | |
| "identifications": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/identification" | |
| } | |
| }, | |
| "authorizedPersons": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/authorizedPerson" | |
| } | |
| }, | |
| "structureTypeCode": { | |
| "$ref": "#/definitions/optionTypeCode" | |
| }, | |
| "structureTypeOther": { | |
| "$ref": "#/definitions/string200" | |
| }, | |
| "natureOfPrincipalBusiness": { | |
| "$ref": "#/definitions/string200" | |
| }, | |
| "registrationIncorporationIndicator": { | |
| "type": "boolean" | |
| }, | |
| "registrationsIncorporations": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/registrationIncorporation" | |
| } | |
| }, | |
| "directorsOfCorporation": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/personContact" | |
| } | |
| }, | |
| "personsOwningSharesOfCorporation": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "surname": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "givenName": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "otherNameInitial": { | |
| "$ref": "#/definitions/string100" | |
| } | |
| } | |
| } | |
| }, | |
| "trusteesOfTrust": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/personContact" | |
| } | |
| }, | |
| "settlorsOfTrust": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/personContact" | |
| } | |
| }, | |
| "personsOwningUnitsOfTrust": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/personContact" | |
| } | |
| }, | |
| "beneficiariesOfTrust": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/personContact" | |
| } | |
| }, | |
| "personsOwningEntityNotCorporationOrTrust": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "surname": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "givenName": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "otherNameInitial": { | |
| "$ref": "#/definitions/string100" | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "required": [ | |
| "typeCode", | |
| "refId", | |
| "identifications", | |
| "authorizedPersons", | |
| "registrationsIncorporations", | |
| "directorsOfCorporation", | |
| "personsOwningSharesOfCorporation", | |
| "trusteesOfTrust", | |
| "settlorsOfTrust", | |
| "personsOwningUnitsOfTrust", | |
| "beneficiariesOfTrust", | |
| "personsOwningEntityNotCorporationOrTrust" | |
| ] | |
| }, | |
| "structuredAddress": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "typeCode": { | |
| "enum": [ | |
| 1 | |
| ] | |
| }, | |
| "unitNumber": { | |
| "$ref": "#/definitions/string10" | |
| }, | |
| "buildingNumber": { | |
| "$ref": "#/definitions/string10" | |
| }, | |
| "streetAddress": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "city": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "district": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "provinceStateCode": { | |
| "$ref": "#/definitions/alpha2" | |
| }, | |
| "provinceStateName": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "subProvinceSubLocality": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "postalZipCode": { | |
| "$ref": "#/definitions/string20" | |
| }, | |
| "countryCode": { | |
| "$ref": "#/definitions/alpha2" | |
| } | |
| }, | |
| "required": [ | |
| "typeCode" | |
| ] | |
| }, | |
| "unstructuredAddress": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "typeCode": { | |
| "enum": [ | |
| 2 | |
| ] | |
| }, | |
| "countryCode": { | |
| "$ref": "#/definitions/alpha2" | |
| }, | |
| "unstructured": { | |
| "$ref": "#/definitions/string500" | |
| } | |
| }, | |
| "required": [ | |
| "typeCode", | |
| "unstructured" | |
| ] | |
| }, | |
| "personContact": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "surname": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "givenName": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "otherNameInitial": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "addressTypeCode": { | |
| "enum": [ | |
| 1, | |
| 2 | |
| ] | |
| }, | |
| "address": { | |
| "oneOf": [ | |
| { | |
| "$ref": "#/definitions/structuredAddress" | |
| }, | |
| { | |
| "$ref": "#/definitions/unstructuredAddress" | |
| } | |
| ] | |
| }, | |
| "telephoneNumber": { | |
| "$ref": "#/definitions/string20" | |
| }, | |
| "extensionNumber": { | |
| "$ref": "#/definitions/string10" | |
| } | |
| } | |
| }, | |
| "identification": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "identifierTypeCode": { | |
| "$ref": "#/definitions/optionTypeCode" | |
| }, | |
| "identifierTypeOther": { | |
| "$ref": "#/definitions/string200" | |
| }, | |
| "number": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "jurisdictionOfIssueCountryCode": { | |
| "$ref": "#/definitions/alpha2" | |
| }, | |
| "jurisdictionOfIssueProvinceStateCode": { | |
| "$ref": "#/definitions/alpha2" | |
| }, | |
| "jurisdictionOfIssueProvinceStateName": { | |
| "$ref": "#/definitions/string100" | |
| } | |
| }, | |
| "required": [ | |
| "identifierTypeCode", | |
| "number" | |
| ] | |
| }, | |
| "authorizedPerson": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "surname": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "givenName": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "otherNameInitial": { | |
| "$ref": "#/definitions/string100" | |
| } | |
| } | |
| }, | |
| "registrationIncorporation": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "typeCode": { | |
| "$ref": "#/definitions/optionTypeCode" | |
| }, | |
| "number": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "jurisdictionOfIssueCountryCode": { | |
| "$ref": "#/definitions/alpha2" | |
| }, | |
| "jurisdictionOfIssueProvinceStateCode": { | |
| "$ref": "#/definitions/alpha2" | |
| }, | |
| "jurisdictionOfIssueProvinceStateName": { | |
| "$ref": "#/definitions/string100" | |
| } | |
| }, | |
| "required": [ | |
| "typeCode" | |
| ] | |
| }, | |
| "account": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "financialInstitutionNumber": { | |
| "$ref": "#/definitions/string50" | |
| }, | |
| "branchNumber": { | |
| "$ref": "#/definitions/string50" | |
| }, | |
| "number": { | |
| "$ref": "#/definitions/string100" | |
| }, | |
| "typeCode": { | |
| "$ref": "#/definitions/optionTypeCode" | |
| }, | |
| "typeOther": { | |
| "$ref": "#/definitions/string200" | |
| }, | |
| "currencyCode": { | |
| "$ref": "#/definitions/alpha3" | |
| }, | |
| "virtualCurrencyTypeCode": { | |
| "$ref": "#/definitions/string20" | |
| }, | |
| "virtualCurrencyTypeOther": { | |
| "$ref": "#/definitions/string200" | |
| }, | |
| "dateOpened": { | |
| "$ref": "#/definitions/localDate" | |
| }, | |
| "dateClosed": { | |
| "$ref": "#/definitions/localDate" | |
| }, | |
| "holders": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "additionalProperties": false, | |
| "properties": { | |
| "typeCode": { | |
| "enum": [ | |
| 1, | |
| 2 | |
| ] | |
| }, | |
| "refId": { | |
| "$ref": "#/definitions/string50" | |
| } | |
| }, | |
| "required": [ | |
| "typeCode", | |
| "refId" | |
| ] | |
| } | |
| } | |
| }, | |
| "required": [ | |
| "holders" | |
| ] | |
| }, | |
| "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 | |
| }, | |
| "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 | |
| }, | |
| "optionTypeCode": { | |
| "type": "integer", | |
| "minimum": 1, | |
| "maximum": 99999 | |
| }, | |
| "telephone": { | |
| "type": "string", | |
| "minLength": 0, | |
| "maxLength": 20 | |
| }, | |
| "telephoneExtension": { | |
| "type": "string", | |
| "minLength": 0, | |
| "maxLength": 10 | |
| }, | |
| "currencyAmount": { | |
| "type": "string", | |
| "pattern": "^\\d{1,17}(\\.\\d{2,10})?$" | |
| }, | |
| "exchangeRate": { | |
| "type": "string", | |
| "pattern": "^\\d{1,17}(\\.\\d{2,10})?$" | |
| }, | |
| "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}$" | |
| }, | |
| "zonedTime": { | |
| "type": "string", | |
| "pattern": "^[0-9]{2}:[0-9]{2}:[0-9]{2}[\\-\\+][0-9]{2}:[0-9]{2}$" | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment