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