{
  "openapi": "3.0.3",
  "info": {
    "title": "TransactionDesk Partner API",
    "description": "Lonewolf's TransactionDesk API for Partners to integrate with the TransactionDesk application.\n\n## Authorization\n\n### Authorization Code Flow\n\n1. Redirect the user to the OAuth authorization URL:\n   `https://api.pre.transactiondesk.com/oauth/authorize?client_id=Lonewolf&redirect_uri=https://www.example.com&response_type=code&state=active`\n2. The user logs in via the Lonewolf Authentication system.\n3. On success, the user is redirected back to your `redirect_uri` with a `code` parameter appended.\n4. Exchange the code for an access token via `POST /oauth/token` (see Authentication section). The code is one-time-use and expires in 10 minutes.\n5. Include the access token in the `Authorization: Bearer <token>` header on every request.\n\n### Client Credentials Flow\n\nFor enterprise integrations, use `grant_type=client_credentials`. No user redirect is required. Include an `On-Behalf-Of` header with the target user's GUID on API requests.\n\n## Universal Global Fields\n\nBelow is a list of the fields related to a transaction that can be updated through the API for the Transaction Desk System.\n\n### 1. Property Information\n\n#### Address\n- `streetNumber`\n- `streetName`\n- `city`\n- `county`\n- `state`\n- `zipCode`\n\n#### Subdivision and Parcel Information\n- `subDivision`\n- `lotNumber`\n- `block`\n- `pageNumber`\n- `platBook`\n\n#### Property Characteristics\n- `yearBuilt`\n- `zoningClass`\n- `schoolDistrict`\n\n#### Tax and Legal Information\n- `taxNumber`\n- `township`\n- `legalDescription`\n\n### 2. Listing Information\n\n#### Listing Identification\n- `mlsNumber`\n\n#### Pricing\n- `listPrice`\n\n#### Listing Timeline\n- `expirationDate`\n\n#### Property Inclusions and Exclusions\n- `propertyIncludes`\n- `propertyExcludes`\n- `leasedItems`\n\n### 3. Purchase Information\n\n#### Pricing\n- `purchasePrice`\n\n#### Offer Timeline\n- `offerDate`\n- `offerExpirationDate`\n- `offerAcceptanceDate`\n\n#### Financing Timeline\n- `applicationDate`\n- `approvalDate`\n\n#### Deposits\n- `depositAmount`\n- `additionalDepositAmount`\n- `additionalDepositDate`\n\n#### Transaction Milestones\n- `fundingDate`\n- `possessionDate`\n- `closingDate`",
    "version": "2.0"
  },
  "servers": [
    {
      "url": "https://api.pre.transactiondesk.com"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "ErrorUnauthorized": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "example": 401
          },
          "message": {
            "type": "string",
            "example": "Unauthorized. The user is not authenticated."
          },
          "details": {
            "type": "array",
            "items": {}
          },
          "data": {
            "nullable": true
          }
        }
      },
      "ErrorNotFound": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "example": 404
          },
          "message": {
            "type": "string",
            "example": "Item not found."
          },
          "details": {
            "type": "array",
            "items": {}
          }
        }
      },
      "ErrorBadRequest": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "example": 400
          },
          "message": {
            "type": "string",
            "example": "Request was not valid."
          },
          "details": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "Transaction": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "805355ec-7f7d-413e-986a-c767ea0632da",
            "description": "TransactionGUID used to uniquely identify this specific Transaction"
          },
          "name": {
            "type": "string",
            "example": "1916 Glenarbor Way",
            "description": "Name of the transaction file as it appears in the application"
          },
          "statusId": {
            "type": "string",
            "format": "uuid",
            "example": "6d6d2bfe-b166-4f2c-9027-629f09a35b79",
            "description": "TransactionStatusGUID. See Glossary for values."
          },
          "typeId": {
            "type": "string",
            "format": "uuid",
            "example": "2d9d021d-beb7-456d-9cae-6ce5486ac3f5",
            "description": "TransactionTypeGUID. See Glossary for values."
          },
          "ownerId": {
            "type": "string",
            "format": "uuid",
            "example": "5ec37bc1-9f55-4fe2-b9c4-1072f9954312",
            "description": "OwnerID of this Transaction File"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "example": "2019-05-14T23:49:49.143+00:00"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time",
            "example": "2019-05-14T23:49:52.27+00:00"
          }
        }
      },
      "TransactionDetails": {
        "type": "object",
        "properties": {
          "property": {
            "type": "object",
            "properties": {
              "streetName": {
                "type": "string",
                "example": "Wellington Rd."
              },
              "streetNumber": {
                "type": "string",
                "example": "200"
              },
              "state": {
                "type": "string",
                "example": "ON"
              },
              "city": {
                "type": "string",
                "example": "London"
              },
              "county": {
                "type": "string",
                "example": "Middlesex"
              },
              "zipCode": {
                "type": "string",
                "example": "N6E 38B"
              },
              "subDivision": {
                "type": "string",
                "example": "White Oaks"
              },
              "lotNumber": {
                "type": "string",
                "example": "8"
              },
              "block": {
                "type": "string",
                "example": "20"
              },
              "pageNumber": {
                "type": "string",
                "example": "5"
              },
              "platBook": {
                "type": "string",
                "example": "33"
              },
              "yearBuilt": {
                "type": "integer",
                "example": 1980
              },
              "schoolDistrict": {
                "type": "string",
                "example": "Aquinis School District"
              },
              "zoningClass": {
                "type": "string",
                "example": "Residential"
              },
              "taxNumber": {
                "type": "string",
                "example": "112-1231-999"
              },
              "township": {
                "type": "string",
                "example": "Essex"
              },
              "legalDescription": {
                "type": "string",
                "example": "PL ; Lot ; Bl ; DL ; LD ; S ; Twn ; Rge ; M ; Lot A, Section 75, Victoria District, Plan 42316"
              }
            }
          },
          "listing": {
            "type": "object",
            "properties": {
              "mlsNumber": {
                "type": "string",
                "example": "421126"
              },
              "listPrice": {
                "type": "number",
                "example": 200000
              },
              "expirationDate": {
                "type": "string",
                "format": "date-time",
                "example": "2012-04-23T18:25:43.51"
              },
              "propertyIncludes": {
                "type": "string",
                "example": "Dishwasher, Stove, Fridge"
              },
              "propertyExcludes": {
                "type": "string",
                "example": "Washer, Dryer"
              },
              "leasedItems": {
                "type": "string",
                "example": "Hot Water Tank"
              }
            }
          },
          "purchase": {
            "type": "object",
            "properties": {
              "purchasePrice": {
                "type": "number",
                "example": 190000
              },
              "offerDate": {
                "type": "string",
                "format": "date-time"
              },
              "offerExpirationDate": {
                "type": "string",
                "format": "date-time"
              },
              "offerAcceptanceDate": {
                "type": "string",
                "format": "date-time"
              },
              "applicationDate": {
                "type": "string",
                "format": "date-time"
              },
              "approvalDate": {
                "type": "string",
                "format": "date-time"
              },
              "depositAmount": {
                "type": "number",
                "example": 50000
              },
              "additionalDepositAmount": {
                "type": "number",
                "example": 10000
              },
              "additionalDepositDate": {
                "type": "string",
                "format": "date-time"
              },
              "fundingDate": {
                "type": "string",
                "format": "date-time"
              },
              "possessionDate": {
                "type": "string",
                "format": "date-time"
              },
              "closingDate": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        }
      },
      "Document": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "805355ec-7f7d-413e-986a-c767ea0632da",
            "description": "DocumentGUID"
          },
          "fileTypeId": {
            "type": "string",
            "format": "uuid",
            "example": "6db4d39b-d96d-4cfd-b97e-0c9cd1a176f9",
            "description": "File type GUID. See Glossary for values."
          },
          "documentName": {
            "type": "string",
            "example": "1916 Glenarbor Way"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "example": "2019-05-14T23:49:49.143+00:00"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time",
            "example": "2019-05-14T23:49:52.27+00:00"
          }
        }
      },
      "DocumentWithBinary": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Document"
          },
          {
            "type": "object",
            "properties": {
              "binary": {
                "type": "string",
                "description": "Base64 encoded document binary",
                "example": "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9U...."
              }
            }
          }
        ]
      },
      "TransactionContact": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "805355ec-7f7d-413e-986a-c767ea0632da",
            "description": "ContactGUID"
          },
          "transactionId": {
            "type": "string",
            "format": "uuid",
            "example": "34bfff2a-d186-48c6-b09d-6c15232cfe26",
            "description": "TransactionGUID this contact is associated with"
          },
          "preferredName": {
            "type": "string",
            "example": "Bobby Jones",
            "description": "Preferred name; overrides firstName/lastName on real estate forms"
          },
          "firstName": {
            "type": "string",
            "example": "Robert"
          },
          "middleName": {
            "type": "string",
            "example": "P"
          },
          "lastName": {
            "type": "string",
            "example": "Jones"
          },
          "fullAddress": {
            "type": "string",
            "example": "100 Wellington St.",
            "description": "Street number and name"
          },
          "city": {
            "type": "string",
            "example": "London"
          },
          "state": {
            "type": "string",
            "example": "ON"
          },
          "zipCode": {
            "type": "string",
            "example": "N6E B3B"
          },
          "phone": {
            "type": "string",
            "example": "519-000-0000"
          },
          "fax": {
            "type": "string",
            "example": "519-000-0001"
          },
          "cell": {
            "type": "string",
            "example": "519-000-0002"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "bobbyjones@fakeemail.com"
          },
          "company": {
            "type": "string",
            "example": "Bobby Jones Real Estate"
          },
          "typeId": {
            "type": "string",
            "format": "uuid",
            "example": "918753cd-df9d-4a8c-b9c5-2d0115835ea0",
            "description": "Contact type GUID. See Glossary for values."
          }
        }
      },
      "ContactType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "3820856a-faef-477d-8d6a-8a8e25fc9522",
            "description": "Unique identifier for this contact type"
          },
          "name": {
            "type": "string",
            "example": "Listing Agent"
          },
          "ownerId": {
            "type": "string",
            "format": "uuid",
            "example": "5ec37bc1-9f55-4fe2-b9c4-1072f9954312",
            "description": "Owner of this type (Global, Association, Office, or Personal level)"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "example": "2020-04-14T15:54:53.207"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time",
            "example": "2020-04-14T15:54:53.207"
          }
        }
      },
      "TransactionType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "8bd47056-64b5-41dd-ad97-53f6a7debe80",
            "description": "Unique identifier for this transaction type"
          },
          "name": {
            "type": "string",
            "example": "Commercial Lease"
          },
          "ownerId": {
            "type": "string",
            "format": "uuid",
            "example": "476ba212-d96d-49e5-82df-3f474d9e9188",
            "description": "Owner of this type (Global, Association, Office, or Personal level)"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "example": "2012-01-18T20:42:38.737"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time",
            "example": "2012-01-18T20:42:38.737"
          }
        }
      },
      "TransactionStatus": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "ee349fd8-5842-420f-84a2-9b80b8d9632e",
            "description": "Unique identifier for this transaction status"
          },
          "name": {
            "type": "string",
            "example": "Active"
          },
          "ownerId": {
            "type": "string",
            "format": "uuid",
            "example": "476ba212-d96d-49e5-82df-3f474d9e9188",
            "description": "Owner of this status (Global, Association, Office, or Personal level)"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "example": "2008-03-02T04:26:50.607+00:00"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time",
            "example": "2008-03-02T04:26:50.607+00:00"
          }
        }
      },
      "SSOLink": {
        "type": "object",
        "properties": {
          "link": {
            "type": "string",
            "example": "https://td2.transactiondesk.com/external/entry.ashx?i=28403062-47a4-4a7a-ae3d-b3f64decd32e",
            "description": "One-time-use single sign on link"
          }
        }
      },
      "Metadata": {
        "type": "object",
        "properties": {
          "defaultTake": {
            "type": "integer",
            "example": 10,
            "description": "Default number of records returned when not using a filter"
          },
          "maxTake": {
            "type": "integer",
            "example": 100,
            "description": "Maximum records returnable using the $take filter"
          },
          "defaultOrder": {
            "type": "string",
            "example": "Name",
            "description": "Default sort order"
          }
        }
      },
      "MetadataProperty": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Id",
            "description": "Attribute name returned in the payload"
          },
          "type": {
            "type": "string",
            "example": "Guid",
            "description": "Attribute type (Guid, String, DateTimeOffset, etc.)"
          },
          "canFilter": {
            "type": "boolean",
            "example": true,
            "description": "Whether this attribute can be filtered"
          },
          "canSort": {
            "type": "boolean",
            "example": true,
            "description": "Whether this attribute can be sorted"
          },
          "filterType": {
            "type": "string",
            "example": "Equals",
            "description": "Whether filtering does a contains search or exact match"
          }
        }
      },
      "FormLibrary": {
        "type": "object",
        "properties": {
          "folderId": {
            "type": "integer",
            "example": 123,
            "description": "Form-library folder identifier"
          },
          "name": {
            "type": "string",
            "example": "State Forms",
            "description": "Name of the form library folder"
          },
          "description": {
            "type": "string",
            "example": "State form library",
            "description": "Description of the form library folder"
          }
        }
      },
      "FormLibraryForm": {
        "type": "object",
        "properties": {
          "formLib": {
            "type": "string",
            "example": "ABC123",
            "description": "Form identifier within the folder"
          },
          "name": {
            "type": "string",
            "example": "Purchase Agreement",
            "description": "Name of the form"
          },
          "description": {
            "type": "string",
            "example": "Purchase Agreement form",
            "description": "Description of the form"
          }
        }
      },
      "TransactionForm": {
        "type": "object",
        "description": "Represents a form instance associated with a transaction.\n\n**Fields:**\n\n| Field | Type | Description |\n|---|---|---|\n| id | GUID | Transaction form instance identifier |\n| formName | string | Name of the form |\n| formLib | string | Form-library identifier |\n| dateCreated | DateTimeOffset | Creation timestamp |\n| lastModified | DateTimeOffset | Last modification timestamp |\n\n**Expected Identifiers:**\n\n| Identifier | Type | Description |\n|---|---|---|\n| transactionId | GUID | Transaction identifier |\n| id | GUID | Transaction form instance identifier |\n| formLib | string | Form-library identifier |",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "7f0f7fc1-8a2f-4e3d-b23f-3b6d2f1f9a11",
            "description": "Transaction form instance identifier"
          },
          "formName": {
            "type": "string",
            "example": "Purchase Agreement",
            "description": "Name of the form"
          },
          "formLib": {
            "type": "string",
            "example": "ABC123",
            "description": "Form-library identifier"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "example": "2026-05-26T12:00:00Z",
            "description": "Creation timestamp"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time",
            "example": "2026-05-26T12:05:00Z",
            "description": "Last modification timestamp"
          }
        }
      }
    }
  },
  "paths": {
    "/oauth/token": {
      "post": {
        "summary": "Exchange for Access Token",
        "description": "Exchange an authorization code or client credentials for a bearer access token.\n\n- Use `grant_type=authorization_code` along with the `code` and `redirect_uri` from the Authorization Code flow.\n- Use `grant_type=client_credentials` for the Client Credentials flow (no user redirect required).",
        "security": [],
        "tags": [
          "Authentication"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "required": [
                  "grant_type",
                  "client_id",
                  "client_secret"
                ],
                "properties": {
                  "grant_type": {
                    "type": "string",
                    "enum": [
                      "authorization_code",
                      "client_credentials"
                    ],
                    "example": "authorization_code"
                  },
                  "client_id": {
                    "type": "string",
                    "example": "Lonewolf",
                    "description": "Client ID provided by Lonewolf"
                  },
                  "client_secret": {
                    "type": "string",
                    "example": "LonewolfSecret",
                    "description": "Client Secret provided by Lonewolf"
                  },
                  "code": {
                    "type": "string",
                    "example": "a29fc587-96f3-4fa2-a4ad-c42fef5141f7",
                    "description": "Authorization code from step 3 (authorization_code flow only). One-time use, expires in 10 minutes."
                  },
                  "redirect_uri": {
                    "type": "string",
                    "example": "https://www.example.com",
                    "description": "Must match the redirect_uri used in step 1 (authorization_code flow only)"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Access token issued successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "access_token": {
                      "type": "string",
                      "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
                    },
                    "token_type": {
                      "type": "string",
                      "example": "bearer"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions": {
      "get": {
        "summary": "Get All Transactions",
        "description": "Returns a full list of transactions owned by the authenticated user. Supports filter params ($orderDir, $skip, $take, $orderBy).",
        "tags": [
          "Transaction Summary"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "$orderDir",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ]
            },
            "description": "Sort direction"
          },
          {
            "in": "query",
            "name": "$skip",
            "schema": {
              "type": "integer"
            },
            "description": "Number of records to skip (pagination)"
          },
          {
            "in": "query",
            "name": "$take",
            "schema": {
              "type": "integer",
              "maximum": 100
            },
            "description": "Number of records to return (max 100)"
          },
          {
            "in": "query",
            "name": "$orderBy",
            "schema": {
              "type": "string"
            },
            "description": "Field to order by"
          }
        ],
        "responses": {
          "200": {
            "description": "List of transactions returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Transaction"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a Transaction",
        "description": "Creates a new transaction file in the authenticated user's account.",
        "tags": [
          "Transaction Summary"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "Name of Property",
                    "description": "Name of the transaction file"
                  },
                  "typeId": {
                    "type": "string",
                    "format": "uuid",
                    "example": "805355ec-7f7d-413e-986a-c767ea0632da",
                    "description": "TransactionTypeGUID. See Glossary for values."
                  },
                  "statusId": {
                    "type": "string",
                    "format": "uuid",
                    "example": "805355ec-7f7d-413e-986a-c767ea0632da",
                    "description": "TransactionStatusGUID. See Glossary for values."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Transaction created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "example": "805355ec-7f7d-413e-986a-c767ea0632da"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/{id}": {
      "parameters": [
        {
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "TransactionGUID"
        }
      ],
      "get": {
        "summary": "Get a Specific Transaction",
        "description": "Returns a specific transaction file owned by the authenticated user.",
        "tags": [
          "Transaction Summary"
        ],
        "responses": {
          "200": {
            "description": "Transaction returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Transaction"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Transaction not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update a Transaction",
        "description": "Updates part or all of a specific transaction file.",
        "tags": [
          "Transaction Summary"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "statusId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "typeId": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Transaction updated successfully"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Transaction not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a Transaction",
        "description": "Deletes a specific transaction file owned by the authenticated user.",
        "tags": [
          "Transaction Summary"
        ],
        "responses": {
          "200": {
            "description": "Transaction deleted successfully"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Transaction not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/{id}/details": {
      "parameters": [
        {
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "TransactionGUID"
        }
      ],
      "get": {
        "summary": "Get Transaction Details",
        "description": "Returns property details associated with a specified transaction file. Details are divided into three sections: property information, listing information, and sale/purchase information.",
        "tags": [
          "Transaction Summary"
        ],
        "responses": {
          "200": {
            "description": "Transaction details returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Transaction not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update Transaction Details",
        "description": "Updates part or all of the property details associated with a specified transaction file. You can update any combination of property, listing, and purchase fields.",
        "tags": [
          "Transaction Summary"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionDetails"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Transaction details updated successfully"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Transaction not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/{id}/documents": {
      "parameters": [
        {
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "TransactionGUID"
        }
      ],
      "get": {
        "summary": "Get All Documents",
        "description": "Returns a full list of documents associated with a specific transaction.",
        "tags": [
          "Transaction Documents"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "$orderDir",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ]
            }
          },
          {
            "in": "query",
            "name": "$skip",
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "$take",
            "schema": {
              "type": "integer",
              "maximum": 100
            }
          },
          {
            "in": "query",
            "name": "$orderBy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of documents returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Document"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Upload a Document",
        "description": "Uploads a new document to a specific transaction. The document binary must be Base64 encoded.",
        "tags": [
          "Transaction Documents"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "documentName",
                  "binary",
                  "fileTypeId"
                ],
                "properties": {
                  "documentName": {
                    "type": "string",
                    "example": "Purchase Agreement"
                  },
                  "binary": {
                    "type": "string",
                    "description": "Base64 encoded document binary"
                  },
                  "fileTypeId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "File type GUID. See Glossary for values."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Document uploaded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/{transactionId}/documents/{documentId}": {
      "parameters": [
        {
          "in": "path",
          "name": "transactionId",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "TransactionGUID"
        },
        {
          "in": "path",
          "name": "documentId",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "DocumentGUID"
        }
      ],
      "get": {
        "summary": "Get a Specific Document",
        "description": "Returns the document binary of a specific file within a transaction.",
        "tags": [
          "Transaction Documents"
        ],
        "responses": {
          "200": {
            "description": "Document returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentWithBinary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Document not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update a Document",
        "description": "Updates the name of a specific document within a transaction.",
        "tags": [
          "Transaction Documents"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "documentName": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Document updated successfully"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Document not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a Document",
        "description": "Deletes a specific document within a transaction.",
        "tags": [
          "Transaction Documents"
        ],
        "responses": {
          "200": {
            "description": "Document deleted successfully"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Document not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/{id}/contacts": {
      "parameters": [
        {
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "TransactionGUID"
        }
      ],
      "get": {
        "summary": "Get All Transaction Contacts",
        "description": "Returns a list of all contacts associated with a specific transaction.",
        "tags": [
          "Transaction Contacts"
        ],
        "responses": {
          "200": {
            "description": "List of contacts returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TransactionContact"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a Transaction Contact",
        "description": "Creates a new contact associated with a specific transaction. Required fields: `firstName`, `lastName`, `typeId`, `transactionId`.",
        "tags": [
          "Transaction Contacts"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionContact"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Contact created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "example": "d70cf831-53ca-41b4-9214-aa6acce37718"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/{transactionId}/contacts/{contactId}": {
      "parameters": [
        {
          "in": "path",
          "name": "transactionId",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "TransactionGUID"
        },
        {
          "in": "path",
          "name": "contactId",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "ContactGUID"
        }
      ],
      "get": {
        "summary": "Get a Specific Transaction Contact",
        "description": "Returns a specific contact associated with a transaction.",
        "tags": [
          "Transaction Contacts"
        ],
        "responses": {
          "200": {
            "description": "Contact returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionContact"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Contact not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update a Transaction Contact",
        "description": "Updates one or more attributes of a specific transaction contact.",
        "tags": [
          "Transaction Contacts"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionContact"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Contact updated successfully"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Contact not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a Transaction Contact",
        "description": "Deletes a specific contact from a transaction.",
        "tags": [
          "Transaction Contacts"
        ],
        "responses": {
          "200": {
            "description": "Contact deleted successfully"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Contact not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/contacts/types": {
      "get": {
        "summary": "Get All Transaction Contact Types",
        "description": "Returns all transaction contact types the authenticated user is entitled to see. A user can see Global, Association, Office, and Personal level types, but can only PATCH/DELETE their own.",
        "tags": [
          "Transaction Contact Types"
        ],
        "responses": {
          "200": {
            "description": "List of contact types returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactType"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a Transaction Contact Type",
        "description": "Creates a new transaction contact type for the authenticated user.",
        "tags": [
          "Transaction Contact Types"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "Home Inspector"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Contact type created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "example": "908fcaab-5e43-4122-acd8-26777e9ae4dd"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/contacts/types/{id}": {
      "parameters": [
        {
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "Contact Type GUID"
        }
      ],
      "get": {
        "summary": "Get a Specific Transaction Contact Type",
        "description": "Returns a specific transaction contact type.",
        "tags": [
          "Transaction Contact Types"
        ],
        "responses": {
          "200": {
            "description": "Contact type returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactType"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Contact type not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update a Transaction Contact Type",
        "description": "Updates an existing transaction contact type. You can only update types you own.",
        "tags": [
          "Transaction Contact Types"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "Home Inspector"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Contact type updated successfully"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Contact type not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a Transaction Contact Type",
        "description": "Deletes a specific transaction contact type. You can only delete types you own.",
        "tags": [
          "Transaction Contact Types"
        ],
        "responses": {
          "200": {
            "description": "Contact type deleted successfully"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Contact type not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/types": {
      "get": {
        "summary": "Get All Transaction Types",
        "description": "Returns all transaction types the authenticated user is entitled to see. A user can see Global, Association, Office, and Personal level types, but can only PATCH/DELETE their own.",
        "tags": [
          "Transaction Types"
        ],
        "responses": {
          "200": {
            "description": "List of transaction types returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TransactionType"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a Transaction Type",
        "description": "Creates a new transaction type for the authenticated user.",
        "tags": [
          "Transaction Types"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "Rental Property"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Transaction type created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "example": "ee9d3620-9b2f-437d-b522-3c785dbbfacd"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/types/{id}": {
      "parameters": [
        {
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "Transaction Type GUID"
        }
      ],
      "get": {
        "summary": "Get a Specific Transaction Type",
        "description": "Returns a specific transaction type the authenticated user is entitled to see.",
        "tags": [
          "Transaction Types"
        ],
        "responses": {
          "200": {
            "description": "Transaction type returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionType"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Transaction type not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update a Transaction Type",
        "description": "Updates an existing transaction type. You can only update types you own.",
        "tags": [
          "Transaction Types"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "Rental Property"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Transaction type updated successfully"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Transaction type not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a Transaction Type",
        "description": "Deletes a specific transaction type. You can only delete types you own.",
        "tags": [
          "Transaction Types"
        ],
        "responses": {
          "200": {
            "description": "Transaction type deleted successfully"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Transaction type not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/statuses": {
      "get": {
        "summary": "Get All Transaction Statuses",
        "description": "Returns all transaction statuses the authenticated user is entitled to see.",
        "tags": [
          "Transaction Statuses"
        ],
        "responses": {
          "200": {
            "description": "List of transaction statuses returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TransactionStatus"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a Transaction Status",
        "description": "Creates a new transaction status for the authenticated user.",
        "tags": [
          "Transaction Statuses"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "Fallen-Through"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Transaction status created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "example": "ee9d3620-9b2f-437d-b522-3c785dbbfacd"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/statuses/{id}": {
      "parameters": [
        {
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "Transaction Status GUID"
        }
      ],
      "get": {
        "summary": "Get a Specific Transaction Status",
        "description": "Returns a specific transaction status the authenticated user is entitled to see.",
        "tags": [
          "Transaction Statuses"
        ],
        "responses": {
          "200": {
            "description": "Transaction status returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Transaction status not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update a Transaction Status",
        "description": "Updates an existing transaction status. You can only update statuses you own.",
        "tags": [
          "Transaction Statuses"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "Fallen-Through"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Transaction status updated successfully"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Transaction status not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a Transaction Status",
        "description": "Deletes a specific transaction status. You can only delete statuses you own.",
        "tags": [
          "Transaction Statuses"
        ],
        "responses": {
          "200": {
            "description": "Transaction status deleted successfully"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorBadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Transaction status not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      }
    },
    "/v2/view-url": {
      "get": {
        "summary": "Get Agent Dashboard SSO Link",
        "description": "Returns a one-time-use SSO link that lands the user directly on their Agent Dashboard page.",
        "tags": [
          "Single Sign On"
        ],
        "responses": {
          "200": {
            "description": "SSO link returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSOLink"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/view-url": {
      "get": {
        "summary": "Get Transaction List SSO Link",
        "description": "Returns a one-time-use SSO link that lands the user directly on their Transaction List page.",
        "tags": [
          "Single Sign On"
        ],
        "responses": {
          "200": {
            "description": "SSO link returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSOLink"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/{id}/view-url": {
      "parameters": [
        {
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "TransactionGUID"
        }
      ],
      "get": {
        "summary": "Get Specific Transaction SSO Link",
        "description": "Returns a one-time-use SSO link that lands the user directly into a specific transaction.",
        "tags": [
          "Single Sign On"
        ],
        "responses": {
          "200": {
            "description": "SSO link returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSOLink"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/statuses/meta": {
      "get": {
        "summary": "Get Metadata",
        "description": "Returns metadata for a GET request, including the default number of records returned, the maximum, and the default sort order. Not available on transaction details or transaction contacts endpoints.",
        "tags": [
          "Metadata"
        ],
        "responses": {
          "200": {
            "description": "Metadata returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Metadata"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Metadata not available for this resource",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/statuses/meta/properties": {
      "get": {
        "summary": "Get Metadata Properties",
        "description": "Returns the attributes of a resource along with their sort, filter, and type specifications.",
        "tags": [
          "Metadata"
        ],
        "responses": {
          "200": {
            "description": "Metadata properties returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MetadataProperty"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Metadata not available for this resource",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      }
    },
    "/v2/users": {
      "get": {
        "summary": "Get All Users",
        "description": "Returns users for the authenticated API client's owner scope.\n\n**Authorization:** Requires OAuth client credentials token with a valid on-behalf-of user and an API client whose owner type is `Client`, `Company`, or `Office`.",
        "tags": [
          "Other Endpoints"
        ],
        "responses": {
          "200": {
            "description": "List of users returned successfully"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      }
    },
    "/v2/formlibraries": {
      "get": {
        "summary": "Get All Libraries",
        "description": "Returns all form-library folders available to the authenticated user.",
        "tags": [
          "Other Endpoints"
        ],
        "responses": {
          "200": {
            "description": "List of form libraries returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FormLibrary"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      }
    },
    "/v2/formlibraries/{folderId}": {
      "parameters": [
        {
          "in": "path",
          "name": "folderId",
          "required": true,
          "schema": {
            "type": "integer"
          },
          "description": "Form-library folder identifier"
        }
      ],
      "get": {
        "summary": "Get Library Details",
        "description": "Returns details for a specific form-library folder.",
        "tags": [
          "Other Endpoints"
        ],
        "responses": {
          "200": {
            "description": "Form library details returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormLibrary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      }
    },
    "/v2/formlibraries/{folderId}/forms/{formLib}": {
      "parameters": [
        {
          "in": "path",
          "name": "folderId",
          "required": true,
          "schema": {
            "type": "integer"
          },
          "description": "Form-library folder identifier"
        },
        {
          "in": "path",
          "name": "formLib",
          "required": true,
          "schema": {
            "type": "string"
          },
          "description": "Form identifier within the folder. Matching is case-insensitive."
        }
      ],
      "get": {
        "summary": "Get Forms Within a Library",
        "description": "Returns a specific form within a form-library folder.",
        "tags": [
          "Other Endpoints"
        ],
        "responses": {
          "200": {
            "description": "Form returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormLibraryForm"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorNotFound"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/{transactionId}/forms": {
      "parameters": [
        {
          "in": "path",
          "name": "transactionId",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "Transaction identifier"
        }
      ],
      "post": {
        "summary": "Add Form to a Transaction",
        "description": "Adds a form to a transaction.\n\n**Request Fields:**\n\n| Field | Type | Description |\n|---|---|---|\n| formLib | string | Form-library identifier of the form to add |",
        "tags": [
          "Other Endpoints"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "formLib"
                ],
                "properties": {
                  "formLib": {
                    "type": "string",
                    "example": "ABC123",
                    "description": "Form-library identifier of the form to add"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Form added successfully. Returns the created transaction form instance ID.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid",
                  "example": "7f0f7fc1-8a2f-4e3d-b23f-3b6d2f1f9a11"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/{transactionId}/forms/{id}": {
      "parameters": [
        {
          "in": "path",
          "name": "transactionId",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "Transaction identifier"
        },
        {
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "description": "Transaction form instance identifier"
        }
      ],
      "delete": {
        "summary": "Delete Form from Transaction",
        "description": "Removes a form from a transaction.",
        "tags": [
          "Other Endpoints"
        ],
        "responses": {
          "200": {
            "description": "Form removed successfully"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorUnauthorized"
                }
              }
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Authentication",
      "description": "OAuth 2.0 token endpoints"
    },
    {
      "name": "Transaction Summary",
      "description": "Create, read, update, and delete transaction files and their property details"
    },
    {
      "name": "Transaction Documents",
      "description": "Manage documents within transaction files"
    },
    {
      "name": "Transaction Contacts",
      "description": "Manage contacts associated with transaction files"
    },
    {
      "name": "Transaction Contact Types",
      "description": "Manage contact type definitions"
    },
    {
      "name": "Transaction Types",
      "description": "Manage transaction type definitions"
    },
    {
      "name": "Transaction Statuses",
      "description": "Manage transaction status definitions"
    },
    {
      "name": "Single Sign On",
      "description": "Generate one-time-use SSO links for the agent dashboard, transaction list, or a specific transaction"
    },
    {
      "name": "Metadata",
      "description": "Retrieve metadata and property specifications for API resources"
    },
    {
      "name": "Other Endpoints",
      "description": "Additional endpoints including users, form libraries, and transaction forms"
    }
  ]
}