Professional Credential — Schema Documentation¶
Table of Contents¶
- 1. About this Document
- 1.1 Version History
- 2. Schema Overview
- 2.1 Attribute Summary
- 3. Schema Definition
- 3.1 Agent Contact Details
- 3.2 Office Affiliation
- 3.3 Professional License (BC)
- 4. Data Source Requirements
- 4.1 Agent Contact Details
- 4.2 Office Affiliation
- 4.3 Professional License
- 4.4 Data Currency
- 5. Status Management
- 6. Design Rationale
- 7. Governance
- 8. Implementation References
1. About this Document¶
This document defines the Professional Credential schema — a structured data model for verifiable credentials that attest to a real estate professional's identity, office affiliation, and professional licensing. It is intended for governance reviewers, schema implementers, credential issuers, and verifier application developers evaluating whether this schema meets their requirements.
The Professional Credential schema is a comprehensive credential that captures who the professional is, where they operate, and under what authority they are licensed — providing a complete professional profile in a single verifiable credential.
1.1 Version History¶
| Ver. | Date | Notes | Author(s) |
|---|---|---|---|
| 1.0 | 28-Mar-2026 | Complete revamp: 3 attribute categories (Agent Contact Details, Office Affiliation, Professional License); 17 attributes; re-combines licensing with professional identity | Mathieu Glaude |
| 0.4 | 18-Mar-2026 | Rewritten as schema documentation; v0.3 attribute structure; governance body perspective | Mathieu Glaude |
| 0.3 | 26-Feb-2026 | Simplified to 6 attributes; separated licensing into Accreditation Credential; cornerstone_id reference | Mathieu Glaude |
| 0.2 | 12-Nov-2025 | Restructured into Real Estate Professional with 3 attribute categories | Mathieu Glaude |
| 0.1 | 3-Sep-2025 | Initial draft | Mathieu Glaude |
2. Schema Overview¶
The Professional Credential schema defines the data structure for a verifiable credential that provides a complete professional profile for a real estate professional. It combines agent contact information, office affiliation, and professional licensing into a single credential, enabling verifiers to confirm a professional's identity, where they operate, and their regulatory standing.
| Schema: | Professional Credential v1.0 |
| Format: | W3C Verifiable Credentials (JSON-LD) |
| Governance Body: | Cornerstone Network |
| Schema URI: | https://trustinfrastructure.com/cornerstone/schemas/professional-credential.json |
2.1 Attribute Summary¶
Agent Contact Details
| # | Name | Attribute | Data Type | Required |
|---|---|---|---|---|
| 001 | First Name | first_name |
String | Yes |
| 002 | Last Name | last_name |
String | Yes |
| 003 | Telephone Number | telephone |
String (regex) | Yes |
| 004 | Email Address | email |
String (regex) | Yes |
Office Affiliation
| # | Name | Attribute | Data Type | Required |
|---|---|---|---|---|
| 005 | Franchise | franchise |
String | Yes |
| 006 | Operating Office | operating_office |
String | Yes |
| 007 | Operating Address | operating_address |
String | Yes |
| 008 | Title | title |
String | Yes |
| 009 | Affiliation Start Year | affiliation_start_year |
String (YYYY) | Yes |
Professional License (BC)
| # | Name | Attribute | Data Type | Required |
|---|---|---|---|---|
| 010 | License Number | license_number |
String (NNNNNN) | Yes |
| 011 | License Effective Date | license_effective_date |
String (DD-MM-YYYY) | Yes |
| 012 | License Expiry Date | license_expiry_date |
String (DD-MM-YYYY) | Yes |
| 013 | Licensed As | licensed_as |
Enum | Yes |
| 014 | Licensed For | licensed_for |
Enum (multi-select) | Yes |
| 015 | PREC | prec |
Enum (Y/N) | Yes |
| 016 | Business Name | business_name |
String | No |
| 017 | Issuing Authority | issuing_authority |
Enum | Yes |
3. Schema Definition¶
3.1 Agent Contact Details¶
First Name (001)
| Attribute | first_name |
|---|---|
| Description | The professional's given name. |
| Data Type | String (free text) |
| Required | Yes |
| Examples | Sarah, James |
Last Name (002)
| Attribute | last_name |
|---|---|
| Description | The professional's family name. |
| Data Type | String (free text) |
| Required | Yes |
| Examples | Chen, Williams |
Telephone Number (003)
| Attribute | telephone |
|---|---|
| Description | The professional's contact telephone number. |
| Data Type | String (regular expression validated) |
| Required | Yes |
| Format | E.164 or North American format |
| Examples | +16045551234, (604) 555-1234 |
Email Address (004)
| Attribute | email |
|---|---|
| Description | The professional's contact email address. |
| Data Type | String (regular expression validated) |
| Required | Yes |
| Examples | sarah.chen@suttonrealty.com |
3.2 Office Affiliation¶
Franchise (005)
| Attribute | franchise |
|---|---|
| Description | The real estate franchise or brand the professional is affiliated with. |
| Data Type | String (free text) |
| Required | Yes |
| Examples | Sutton Group, Royal LePage, RE/MAX |
Operating Office (006)
| Attribute | operating_office |
|---|---|
| Description | The specific office or branch where the professional operates. |
| Data Type | String (free text) |
| Required | Yes |
| Examples | Sutton Group - West Coast Realty, Royal LePage Sterling Realty |
Operating Address (007)
| Attribute | operating_address |
|---|---|
| Description | The physical address of the operating office. |
| Data Type | String |
| Required | Yes |
| Examples | 4555 Kingsway, Burnaby, BC V5H 4T8 |
Title (008)
| Attribute | title |
|---|---|
| Description | The professional's title or role within the office. |
| Data Type | String (free text) |
| Required | Yes |
| Examples | Real Estate Professional, Managing Broker, Associate Broker |
Affiliation Start Year (009)
| Attribute | affiliation_start_year |
|---|---|
| Description | The year the professional began their affiliation with the office. |
| Data Type | String (YYYY) |
| Required | Yes |
| Examples | 2018, 2023 |
3.3 Professional License (BC)¶
License Number (010)
| Attribute | license_number |
|---|---|
| Description | The professional's BC real estate license number, issued by the regulatory authority. |
| Data Type | String (6-digit numeric: NNNNNN) |
| Required | Yes |
| Examples | 123456, 078901 |
License Effective Date (011)
| Attribute | license_effective_date |
|---|---|
| Description | The date the professional's license became effective. |
| Data Type | String (DD-MM-YYYY) |
| Required | Yes |
| Examples | 15-03-2020 |
License Expiry Date (012)
| Attribute | license_expiry_date |
|---|---|
| Description | The date the professional's license expires and must be renewed. |
| Data Type | String (DD-MM-YYYY) |
| Required | Yes |
| Examples | 14-03-2026 |
Licensed As (013)
| Attribute | licensed_as |
|---|---|
| Description | The category of license held by the professional. |
| Data Type | Enum |
| Required | Yes |
| Values | Representative, Associate Broker, Managing Broker |
Licensed For (014)
| Attribute | licensed_for |
|---|---|
| Description | The service categories the professional is licensed to perform. A professional may hold licenses for multiple service categories. |
| Data Type | Enum (multi-select) |
| Required | Yes |
| Values | Trading Services, Rental Property Management Services, Strata Managing Services |
PREC (015)
| Attribute | prec |
|---|---|
| Description | Indicates whether the professional operates through a Personal Real Estate Corporation (PREC). |
| Data Type | Enum |
| Required | Yes |
| Values | Y, N |
Business Name (016)
| Attribute | business_name |
|---|---|
| Description | The name of the Personal Real Estate Corporation or business entity, if applicable. Required when PREC = "Y". |
| Data Type | String (free text) |
| Required | No (conditional — required when PREC = "Y") |
| Examples | Chen Realty Corp. |
Issuing Authority (017)
| Attribute | issuing_authority |
|---|---|
| Description | The regulatory body that issued the professional license. |
| Data Type | Enum |
| Required | Yes |
| Values | BCFSA (BC Financial Services Authority) |
4. Data Source Requirements¶
Credentials issued under this schema are expected to draw from the following authoritative sources.
4.1 Agent Contact Details¶
Contact information (first_name, last_name, telephone, email) is provided by the professional and verified by the issuing organization.
4.2 Office Affiliation¶
Office affiliation data (franchise, operating_office, operating_address, title, affiliation_start_year) is provided by the employer's system of record (e.g., brokerage management platform). The employer confirms the professional's active affiliation out-of-band before a credential is issued.
4.3 Professional License¶
Licensing data (license_number, license_effective_date, license_expiry_date, licensed_as, licensed_for, issuing_authority) is sourced from the regulatory authority (BCFSA for British Columbia). The business_name is sourced from the PREC registry when applicable.
4.4 Data Currency¶
- A credential reflects the state of the professional's contact details, office affiliation, and licensing at the time of issuance.
- Changes to any of the following require credential revocation and re-issuance: office affiliation, license status, licensed categories, or PREC status.
- Contact detail updates (telephone, email) may be handled via credential refresh without revocation, at the issuer's discretion.
5. Status Management¶
This schema requires credentials to implement W3C Bitstring Status List v1.1 for lifecycle management, with separate bitstrings for revocation and suspension.
| Event | Action | Status Handling |
|---|---|---|
| Credential issued | Issue credential | Index set to 0 (valid) |
| Employment terminated | Revoke | Revocation bit = 1 (permanent) |
| Office change | Revoke + re-issue | Old revoked; new credential index = 0 |
| License expired | Revoke | Revocation bit = 1 (permanent) |
| License renewed | Revoke + re-issue | Old revoked; new credential with updated dates |
| License suspended | Suspend | Suspension bit = 1 (reversible) |
| License reinstated | Reinstate | Suspension bit = 0 |
| Fraud detected | Revoke | Revocation bit = 1 (permanent) |
6. Design Rationale¶
Re-combination of professional identity and licensing (v1.0): Versions 0.3–0.4 separated organizational affiliation from professional licensing into two independent credentials (Professional Credential and Accreditation Credential). After stakeholder feedback and real-world implementation planning, these have been re-combined into a single comprehensive Professional Credential. The rationale: in practice, a real estate professional's identity, office affiliation, and license status are verified together and consumed together. Splitting them created unnecessary complexity for issuers and verifiers without meaningful benefit.
Three attribute categories: The schema is organized into logical groups — Agent Contact Details, Office Affiliation, and Professional License — making it clear where each data point originates and how it should be verified.
Multi-select for Licensed For: A professional may be licensed for multiple service categories simultaneously (e.g., both Trading Services and Rental Property Management Services). The multi-select enum supports this without requiring multiple credentials.
BC-specific licensing section: The Professional License section is scoped to BC (BCFSA) as the initial jurisdiction. Future versions may add jurisdiction-specific sections for other provinces or US states.
7. Governance¶
- Governance Body: Cornerstone Network
- Schema Owner: Cornerstone Network
- Review Cycle: Annual, or upon breaking schema changes
- Change Process: Schema updates follow a change-managed governance process to ensure interoperability across all adopting organizations
8. Implementation References¶
| Reference | Value |
|---|---|
| Technical Format | W3C Verifiable Credentials Data Model (JSON-LD) |
| Schema URI | https://trustinfrastructure.com/cornerstone/schemas/professional-credential.json |
| Context URLs | https://www.w3.org/ns/credentials/v2 https://trustinfrastructure.com/cornerstone/contexts/professional-credential-v1.0.json |
| Schema Registry | https://trustinfrastructure.com/cornerstone/schemas/ |
| Governance Doc | https://openpropertyassociation.ca/credential-governance/professional-credential/ |
Required Envelope Fields¶
Credentials issued under this schema must include:
- issuer — DID of the issuing organization
- validFrom and validUntil — temporal bounds
- credentialSchema — reference to this schema
- credentialStatus — revocation and suspension bitstring entries