--- openapi: 3.0.3 info: title: TransactionDesk Partner API description: |- Lonewolf's TransactionDesk API for Partners to integrate with the TransactionDesk application. ## Authorization ### Authorization Code Flow 1. Redirect the user to the OAuth authorization URL: `https://api.pre.transactiondesk.com/oauth/authorize?client_id=Lonewolf&redirect_uri=https://www.example.com&response_type=code&state=active` 2. The user logs in via the Lonewolf Authentication system. 3. On success, the user is redirected back to your `redirect_uri` with a `code` parameter appended. 4. 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. 5. Include the access token in the `Authorization: Bearer ` header on every request. ### Client Credentials Flow For 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. ## Universal Global Fields Below is a list of the fields related to a transaction that can be updated through the API for the Transaction Desk System. ### 1. Property Information #### Address - `streetNumber` - `streetName` - `city` - `county` - `state` - `zipCode` #### Subdivision and Parcel Information - `subDivision` - `lotNumber` - `block` - `pageNumber` - `platBook` #### Property Characteristics - `yearBuilt` - `zoningClass` - `schoolDistrict` #### Tax and Legal Information - `taxNumber` - `township` - `legalDescription` ### 2. Listing Information #### Listing Identification - `mlsNumber` #### Pricing - `listPrice` #### Listing Timeline - `expirationDate` #### Property Inclusions and Exclusions - `propertyIncludes` - `propertyExcludes` - `leasedItems` ### 3. Purchase Information #### Pricing - `purchasePrice` #### Offer Timeline - `offerDate` - `offerExpirationDate` - `offerAcceptanceDate` #### Financing Timeline - `applicationDate` - `approvalDate` #### Deposits - `depositAmount` - `additionalDepositAmount` - `additionalDepositDate` #### Transaction Milestones - `fundingDate` - `possessionDate` - `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. **Fields:** | Field | Type | Description | |---|---|---| | id | GUID | Transaction form instance identifier | | formName | string | Name of the form | | formLib | string | Form-library identifier | | dateCreated | DateTimeOffset | Creation timestamp | | lastModified | DateTimeOffset | Last modification timestamp | **Expected Identifiers:** | Identifier | Type | Description | |---|---|---| | transactionId | GUID | Transaction identifier | | id | GUID | Transaction form instance identifier | | 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. - Use `grant_type=authorization_code` along with the `code` and `redirect_uri` from the Authorization Code flow. - 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. **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. **Request Fields:** | Field | Type | Description | |---|---|---| | 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