{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "properties": {
        "Response": {
            "type": "object",
            "properties": {
                "RentalHistory": {
                    "type": "object",
                    "properties": {
                        "HeaderInformation": {
                            "type": "object",
                            "properties": {
                                "ID": {
                                    "$ref": "#/definitions/ID"
                                },
                                "Name": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/definitions/Name"
                                    }
                                },
                                "EmailAddress": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                         "format": "email"
                                    },
                                    "maxItems": 10
                                },
                                "Phone": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/definitions/Phone"
                                    }
                                },
                                "Address": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/definitions/Address"
                                    }
                                },
                                "Employment": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/definitions/Employment"
                                    }
                                },
                                "ConfidenceFactor": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "ID",
                                "Name"
                            ]
                        },
                        "Tradeline": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "TenantInformation": {
                                        "type": "object",
                                        "properties": {
                                            "ID": {
                                                "$ref": "#/definitions/ID"
                                            },
                                            "Name": {
                                                "type": "array",
                                                "items": {
                                                    "$ref": "#/definitions/Name"
                                                }
                                            },
                                            "EmailAddress": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string",
                                                    "format": "email"
                                                }
                                            },
                                            "Phone": {
                                                "type": "array",
                                                "items": {
                                                    "$ref": "#/definitions/Phone",
                                                    "additionalProperties": false
                                                }
                                            },
                                            "Address": {
                                                "type": "array",
                                                "items": {
                                                    "$ref": "#/definitions/Address"
                                                }
                                            },
                                            "Employment": {
                                                "type": "array",
                                                "items": {
                                                    "$ref": "#/definitions/Employment"
                                                }
                                            },
                                            "ConfidenceFactor": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "required": [
                                                "Name"
                                            ]
                                        }
                                    },
                                    "LeaseInformation": {
                                        "type": "object",
                                        "properties": {
                                            "ReportedDate": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "date"
                                            },
                                            "LastReportedDate": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "date"
                                            },
                                            "FirstReportedDate": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "date"
                                            },
                                            "LeaseFrom": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "date"
                                            },
                                            "LeaseTo": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "date"
                                            },
                                            "MoveInDate": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "date"
                                            },
                                            "MoveOutDate": {
                                                "type": [
                                                    "string"
                                                ],
                                                "format": "date"
                                            },
                                            "NoticeDate": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "date"
                                            },
                                            "LastActivityDate": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "date"
                                            },
                                            "PaymentVector": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "TotalWriteOffs": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "TotalRentWriteOffs": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "TotalNonRentWriteOffs": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "TotalOutstanding": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "Deposit": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "Rent": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "RentConcession": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "TotalRent": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "LateCount": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "NSFCount": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "LEMO": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "NumLessees": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "SubsidyIndicator": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "SubsidyAmount": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "ComplianceConditionCode": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "ComplianceConditionDescription": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "Rating": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "DisputeIndicator": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "DisputeText": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            }
                                        }
                                    },
                                    "PropertyInformation": {
                                        "type": "object",
                                        "properties": {
                                            "CompanyName": {
                                                "type": "object",
                                                "properties": {
                                                    "Value": {
                                                        "type": "string"
                                                    },
                                                    "Id": {
                                                        "type": "string"
                                                    }
                                                },
                                                "required": [
                                                    "Value"
                                                ]
                                            },
                                            "PropertyName": {
                                                "type": "string"
                                            },
                                            "ContactDescription": {
                                                "type": "string"
                                            },
                                            "Name": {
                                                "type": "object",
                                                "$ref": "#/definitions/Name"
                                            },
                                            "Address": {
                                                "type": "object",
                                                "$ref": "#/definitions/Address"
                                            },
                                            "Phone": {
                                                "type": "array",
                                                "items": {
                                                    "$ref": "#/definitions/Phone"
                                                },
                                                "maxItems": 5
                                            },
                                            "EmailAddress": {
                                                "type": "string"
                                            },
                                            "Type": {
                                                "type": "string",
                                                "enum": [
                                                    "manager",
                                                    "owner",
                                                    "vendor",
                                                    "accountant",
                                                    "tax accountant",
                                                    "lawyer",
                                                    "asset manager",
                                                    "lender",
                                                    "investor",
                                                    "employer",
                                                    "previous employer",
                                                    "bank",
                                                    "other"
                                                ]
                                            }
                                        },
                                        "required": [
                                            "Type"
                                        ]
                                    },
                                    "required": [
                                        "TenantInformation",
                                        "LeaseInformation",
                                        "PropertyInformation"
                                    ]
                                }
                            }
                        },
                        "Collection": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "TenantInformation": {
                                    "type": "object",
                                    "properties": {
                                        "ID": {
                                            "type": "object",
                                            "$ref": "#/definitions/ID"
                                        },
                                        "Name": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/Name"
                                            }
                                        },
                                        "EmailAddress": {
                                            "type": "array",
                                            "items": {
                                                "type": "string",
                                                "format": "email"
                                            }
                                        },
                                        "Phone": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/Phone"
                                            }
                                        },
                                        "Address": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/Address"
                                            }
                                        },
                                        "Employment": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/Employment"
                                            }
                                        },
                                        "ConfidenceFactor": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "required": [
                                            "Name"
                                        ]
                                    }
                                },
                                "CollectionInformation": {
                                    "type": "object",
                                    "properties": {
                                        "ReportedDate": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date"
                                        },
                                        "DatePlaced": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date"
                                        },
                                        "PlacedAmount": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "OriginalCreditor": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "AccountNumber": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "Balance": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "CollectedAmount": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "LastActivityDate": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date"
                                        },
                                        "MoveOutDate": {
                                            "type": [
                                                "string"
                                            ],
                                            "format": "date"
                                        },
                                        "Agency": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "Phone": {
                                            "type": "object",
                                            "$ref": "#/definitions/Phone",
                                            "required": [
                                                "Type",
                                                "Number"
                                            ]
                                        },
                                        "Status": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "LastPaymentDate": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date"
                                        },
                                        "IndustryCode": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "DisputeIndicator": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "DisputeText": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "DebtorId": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        }
                                    },
                                    "additionalProperties": false
                                }
                            }
                        },
                        "Score": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "ScoreInformation": {
                                        "type": "object",
                                        "properties": {
                                            "AlgorithmID": {
                                                "type": "string"
                                            },
                                            "AlgorithmName": {
                                                "type": "string"
                                            },
                                            "Score": {
                                                "type": "string"
                                            },
                                            "ScoreIndicator": {
                                                "type": "string"
                                            },
                                            "Factor1": {
                                                "type": "string"
                                            },
                                            "FactorText1": {
                                                "type": "string"
                                            },
                                            "Factor2": {
                                                "type": "string"
                                            },
                                            "FactorText2": {
                                                "type": "string"
                                            },
                                            "Factor3": {
                                                "type": "string"
                                            },
                                            "FactorText3": {
                                                "type": "string"
                                            },
                                            "Factor4": {
                                                "type": "string"
                                            },
                                            "FactorText4": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        "Decision": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "Decision": {
                                        "type": "string"
                                    },
                                    "DecisionText": {
                                        "type": "string"
                                    },
                                    "DecisionIndicator": {
                                        "type": "string"
                                    },
                                    "Factor1": {
                                        "type": "string"
                                    },
                                    "FactorText1": {
                                        "type": "string"
                                    },
                                    "Factor2": {
                                        "type": "string"
                                    },
                                    "FactorText2": {
                                        "type": "string"
                                    },
                                    "Factor3": {
                                        "type": "string"
                                    },
                                    "FactorText3": {
                                        "type": "string"
                                    },
                                    "Factor4": {
                                        "type": "string"
                                    },
                                    "FactorText4": {
                                        "type": "string"
                                    }
                                }
                            }
                        },
                        "Inquiry": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "InquiryDate": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "MemberNumber": {
                                        "type": "string"
                                    },
                                    "MemberName": {
                                        "type": "string"
                                    },
                                    "IndustryCode": {
                                        "type": "string"
                                    },
                                    "RequesterCompanyName": {
                                        "type": "string"
                                    },
                                    "required": [
                                        "InquiryDate",
                                        "MemberNumber",
                                        "IndustryCode"
                                    ]
                                }
                            }
                        },
                        "ConsumerStatement": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "Text": {
                                        "type": "string"
                                    },
                                    "VictimIndicator": {
                                        "type": "string",
                                        "enum": [
                                            "Y",
                                            "N"
                                        ]
                                    },
                                    "StatementType": {
                                        "type": "string"
                                    }
                                }
                            },
                            "required": [
                                "StatementType"
                            ]
                        },
                        "CreditBureau": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "BureauName": {
                                        "type": "string"
                                    },
                                    "Comment": {
                                        "type": "string"
                                    },
                                    "Phone": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/definitions/Phone"
                                        }
                                    },
                                    "Address": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/definitions/Address"
                                        }
                                    }
                                },
                                "required": [
                                    "Address"
                                ]
                            }
                        },
                        "HitIndicator": {
                            "type": "string",
                            "properties": {
                                "HitIndicator": {
                                    "type": "string",
                                    "enum": [
                                        "Error",
                                        "Hit",
                                        "NoHit",
                                        "InqOnlyHit",
                                        "Suppressed",
                                        "Duplicate",
                                        "Other"
                                    ]
                                },
                                "HitType": {
                                    "type": "string"
                                }
                            }
                        },
                        "required": [
                            "Tradeline",
                            "Collection",
                            "Score",
                            "Decision",
                            "Inquiry",
                            "ConsumerStatement",
                            "CreditBureau",
                            "HitIndicator",
                            "HitType"
                        ]
                    }
                },
                "Validation": {
                    "type": "object",
                    "properties": {
                        "SSNInformation": {
                            "type": "object",
                            "properties": {
                                "DeathMaster": {
                                    "type": "object",
                                    "properties": {
                                        "Hit": {
                                            "type": "string"
                                        },
                                        "FirstName": {
                                            "type": "string"
                                        },
                                        "LastName": {
                                            "type": "string"
                                        },
                                        "MonthOfDeath": {
                                            "type": "string"
                                        },
                                        "YearOfDeath": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "Hit"
                                    ]
                                },
                                "IssuanceTable": {
                                    "type": "object",
                                    "properties": {
                                        "Status": {
                                            "type": "string"
                                        },
                                        "StartDate": {
                                            "type": "string",
                                            "format": "date"
                                        },
                                        "EndDate": {
                                            "type": "string",
                                            "format": "date"
                                        },
                                        "State": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "Status"
                                    ]
                                },
                                "Pocketbook": {
                                    "type": "object",
                                    "properties": {
                                        "Hit": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "Hit"
                                    ]
                                },
                                "ITIN": {
                                    "type": "object",
                                    "properties": {
                                        "ValidFormat": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "ValidFormat"
                                    ]
                                },
                                "RecentlyIssued": {
                                    "type": "object",
                                    "properties": {
                                        "Hit": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "Hit"
                                    ]
                                },
                                "IssuedBeforeDOB": {
                                    "type": "object",
                                    "properties": {
                                        "Hit": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "Hit"
                                    ]
                                }
                            }
                        },
                        "AddressInformation": {
                            "type": "object",
                            "properties": {
                                "Address": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/definitions/Address"
                                    }
                                }
                            }
                        }
                    }
                },
                "Error": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "ErrorCode": {
                                "type": "string",
                                "pattern": "^[0-9]$",
                                "description": "The error code associated with the error."
                            },
                            "ErrorDescription": {
                                "type": "string",
                                "description": "A description of the error."
                            },
                            "ErrorDetail": {
                                "type": "string",
                                "description": "Detailed information about the error."
                            },
                            "ErrorCategory": {
                                "type": "string",
                                "description": "The category of the error."
                            }
                        },
                        "required": [
                            "ErrorCode",
                            "ErrorDescription"
                        ]
                    }
                },
                "ClientReferenceNumber": {
                    "type": [
                        "integer",
                        "string"
                    ]
                },
                "TransactionID": {
                    "type": "string",
                    "required": true
                },
                "ReportDate": {
                    "type": "string",
                    "format": "date",
                    "required": true
                },
                "StatusCode": {
                    "type": "string",
                    "required": true
                },
                "StatusDescription": {
                    "type": "string",
                    "required": true
                },
                "Version": {
                    "type": "string",
                    "required": true
                },
                "suppressIndicator": {
                    "type": "boolean"
                },
                "suppressReason": {
                    "type": "string"
                },
                "required": [
                    "TransactionID",
                    "ReportDate",
                    "StatusCode",
                    "StatusDescription",
                    "Version"
                ]
            }
        }
    },
    "definitions": {
        "Name": {
            "type": "object",
            "properties": {
                "NamePrefix": {
                    "type": "string",
                    "maxLength": 50
                },
                "FirstName": {
                    "type": "string",
                    "maxLength": 50
                },
                "MiddleName": {
                    "type": "string",
                    "maxLength": 50
                },
                "LastName": {
                    "type": "string",
                    "maxLength": 50
                },
                "MaidenName": {
                    "type": "string",
                    "maxLength": 50
                },
                "NameSuffix": {
                    "type": "string",
                    "maxLength": 50
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "primary",
                        "maiden",
                        "alias"
                    ]
                }
            },
            "required": [
                "FirstName",
                "LastName"
            ]
        },
        "ID": {
            "type": "object",
            "properties": {
                "SocSecNumber": {
                    "type": "string",
                    "pattern": "^(X{5})\\d{4}$",
                    "maxLength": 9,
                    "minLength": 9
                },
                "BirthDate": {
                    "type": "string",
                    "format": "date",
                    "pattern": "^(19|20)\\d{2}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$"
                },
                "DriversLicenseID": {
                    "type": "string",
                    "maxLength": 50
                },
                "DriversLicenseState": {
                    "type": "string",
                    "maxLength": 50
                },
                "DriversLicenseCountry": {
                    "type": "string",
                    "maxLength": 50
                }
            },
            "additionalProperties": false
        },
        "Address": {
            "type": "object",
            "properties": {
                "Description": {
                    "type": "string",
                    "maxLength": 100
                },
                "Address1": {
                    "type": "string",
                    "maxLength": 100
                },
                "Address2": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "maxLength": 100
                    }
                },
                "City": {
                    "type": "string",
                    "maxLength": 60
                },
                "State": {
                    "type": "string",
                    "maxLength": 2
                },
                "Zip": {
                    "type": [
                        "integer",
                        "string"
                    ],
                    "maxLength": 12
                },
                "Province": {
                    "type": "string",
                    "maxLength": 60
                },
                "PostalCode": {
                    "type": "string",
                    "maxLength": 12
                },
                "Country": {
                    "type": "string",
                    "maxLength": 2
                },
                "CountyName": {
                    "type": "string",
                    "maxLength": 60
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "property",
                        "mailing",
                        "billing",
                        "shipping",
                        "current",
                        "previous",
                        "business",
                        "forwarding",
                        "legal notice",
                        "termination notice",
                        "other",
                        "request_current_standardized",
                        "request_previous_standardized",
                        "resident"
                    ]
                },
                "Standardized": {
                    "type": "string"
                },
                "Verified": {
                    "type": "string"
                }
            },
            "required": [
                "Address1",
                "City",
                "State",
                "Zip",
                "Type"
            ]
        },
        "Employment": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "Company": {
                        "type": "string",
                        "maxLength": 50
                    },
                    "JobTitle": {
                        "type": "string",
                        "maxLength": 50
                    },
                    "Income": {
                        "type": "string",
                        "maxLength": 50
                    },
                    "YearsOnJob": {
                        "type": "string",
                        "maxLength": 50
                    },
                    "Phone": {
                        "type": "array",
                        "items": {
                            "$ref": "#/definitions/Phone"
                        }
                    },
                    "Address": {
                        "type": "array",
                        "items": {
                            "$ref": "#/definitions/Address"
                        }
                    }
                },
                "additionalProperties": false
            }
        },
        "Phone": {
            "type": "object",
            "properties": {
                "PhoneDescription": {
                    "type": "string",
                    "maxLength": 50
                },
                "PhoneNumber": {
                    "type": [
                        "integer",
                        "string"
                    ],
                    "maxLength": 20
                },
                "Extension": {
                    "type": "string",
                    "maxLength": 20
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "home",
                        "office",
                        "cell",
                        "fax",
                        "personal",
                        "emergency",
                        "other"
                    ]
                },
                "required": [
                    "Type"
                ]
            }
        }
    }
}