{ "opencollection": "1.0.0", "info": { "name": "TrustLayer Platform Auth Parties API", "version": "1.0" }, "items": [ { "info": { "name": "Parties", "type": "folder" }, "items": [ { "info": { "name": "Update party external IDs", "type": "http" }, "http": { "method": "PUT", "url": "http://localhost:4000/v1/parties/:partyId/external-ids", "params": [ { "name": "partyId", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update the list of external IDs for this party. The passed values will replace the current ones.\nExternal IDs are in the format `source/id` or `source:instance/id`, where `instance` can be used to differentiate multiple instances of the same `source`.\n\nNote that if the workspace is already integrated with one or more external systems, this endpoint should _not_ be used." }, { "info": { "name": "Waive or override a requirement", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:4000/v1/parties/:id/waive-requirement", "params": [ { "name": "id", "value": "", "type": "path", "description": "Party ID" }, { "name": "scope[type]", "value": "", "type": "query", "description": "Type of the resource to be used as scope" }, { "name": "scope[id]", "value": "", "type": "query", "description": "Id of the resource to be used as scope" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Apply a waiver or an override to a requirement, identified by its full attribute ID (e.g. `evidenceOfInsuranceCommercialGeneralLiabilityGeneralAggregate`).\n\nBy passing in the query string a `scope[type]` of \"projects\" and a project ID which the party belongs to as `scope[id]`, the waiver will be applied only at the project level.\n\nIt's possible to apply the waiver automatically to all present and future projects by setting `applyToAllProjects` in the request body." }, { "info": { "name": "Waive or override a subject", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:4000/v1/parties/:id/waive-subject", "params": [ { "name": "id", "value": "", "type": "path", "description": "Party ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Apply a waiver or an override to a whole subject, identified by its full ID (e.g. `commercialGeneralLiability`).\n\nBy passing in the query string a `scope[type]` of \"projects\" and a project ID which the party belongs to as `scope[id]`, the waiver will be applied only at the project level.\n\nIt's possible to apply the waiver automatically to all present and future projects by setting `applyToAllProjects` in the request body." }, { "info": { "name": "Post a comment on a party's timeline", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:4000/v1/parties/:partyId/comments", "params": [ { "name": "partyId", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Post a comment on a party's timeline" }, { "info": { "name": "List parties", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:4000/v1/parties", "params": [ { "name": "sort", "value": "", "type": "query", "description": "List of comma-separated keys used to sort. Reversing is done by prepending \"-\" to the key name." }, { "name": "page[number]", "value": "", "type": "query", "description": "Page number, starting from 1" }, { "name": "page[size]", "value": "", "type": "query", "description": "Number of items per page. Defaults to 20. Maximum is 100" }, { "name": "filter", "value": "", "type": "query", "description": "Key-value pair, e.g. filter[key]=value" }, { "name": "include", "value": "", "type": "query", "description": "List of comma-separated relationships to include in the result" } ] }, "docs": "Available filters:\n* `project`\n* `name`\n* `type`\n* `status`\n* `createdAt`\n* `updatedAt`\n* `customField`\n* `externalId`\n* `active`\n\nAvailable sort keys:\n* `name`\n* `createdAt`\n* `updatedAt`\n* `status`\n\nAvailable include options:\n* `projects`\n* `documents`\n* `tags`\n* `complianceProfile`\n* `customFields`\n\nPagination is enabled.\n\nNotes:\n\n* the `type` filter takes either the singular or plural version of the type (e.g. \"Vendor\", \"Vendors\")\n* valid values for the `status` filter: \"non_compliant\", \"com" }, { "info": { "name": "Create a new party", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:4000/v1/parties", "body": { "type": "json", "data": "{}" } }, "docs": "Note that a placeholder primary contact will be created with the name \"Anonymous\" if no contact information is provided.\n\nThe compliance profile will be assigned based on the party type." }, { "info": { "name": "Fetch a party", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:4000/v1/parties/:partyId", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" }, { "name": "include", "value": "", "type": "query", "description": "List of comma-separated relationships to include in the result" }, { "name": "scope[type]", "value": "", "type": "query", "description": "Type of the resource to be used as scope" }, { "name": "scope[id]", "value": "", "type": "query", "description": "Id of the resource to be used as scope" } ] }, "docs": "Available include options:\n* `projects`\n* `documents`\n* `tags`\n* `complianceProfile`\n* `customFields`\n\nAvailable scope options:\n* `projects`\n\nIf `scope[type]=project`, the compliance information in the resulting response will be relative to the selected project.\nIf a project scope is specified _and_ documents are included, only documents associated to the project will be returned.\n" }, { "info": { "name": "Update a party", "type": "http" }, "http": { "method": "PATCH", "url": "http://localhost:4000/v1/parties/:partyId", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "The compliance profile can be either turned on/off by assigning `true` or `false` to `complianceProfile`, or it can be changed to another global compliance profile.\nNote: if compliance tracking is turned back on (with `{\"complianceProfile\": true}`), the party will _not_ have a compliance profile assigned." }, { "info": { "name": "Delete a party", "type": "http" }, "http": { "method": "DELETE", "url": "http://localhost:4000/v1/parties/:partyId", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" } ] }, "docs": "TBD" }, { "info": { "name": "List a party's contacts", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:4000/v1/parties/:partyId/contacts", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" } ] }, "docs": "Returns all the contacts for a party. Note that pagination is not available, so the meta information will always return the number of contacts in `totalCount` and 1 in `totalPages`." }, { "info": { "name": "Create a party contact", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:4000/v1/parties/:partyId/contacts", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "* `name` is required.\n* setting the `primary` flag to `true` will unset it from the current primary contact.\n" }, { "info": { "name": "Fetch a party's compliance certificate", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:4000/v1/parties/:partyId/compliance-certificate", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" } ] }, "docs": "Returns the currently valid compliance certificate for a party, if it exists; otherwise it responds with a 404 status.\n\nAvailable `scope` options:\n\n* `projects`\n" }, { "info": { "name": "Create a party compliance certificate", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:4000/v1/parties/:partyId/compliance-certificate", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "* if `effectiveDate` is not provided, it will default to the current moment\n* if `expirationDate` is not provided, it will default to the earliest expiration date found in currently active documents; if no document is present, it will default to 1 year from the effective date\n* if `document` is provided (only for multipart/form-data), it will be uploaded to the party and used as the compliance certificate\n\nAvailable `scope` options:\n\n* `projects`\n" }, { "info": { "name": "Attach documents to a party", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:4000/v1/parties/:partyId/relationships/documents", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Note that at any given time, a document can only be attached to one party.\nIf the document is already attached to another party, it will be ignored.\n\nAll documents _must_ exist, otherwise a 404 response will be returned and no document will be attached.\n" }, { "info": { "name": "Detach a document from a party", "type": "http" }, "http": { "method": "DELETE", "url": "http://localhost:4000/v1/parties/:partyId/relationships/documents", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Once the document has been detached from its party, it can be reattached to a different party.\n\nAll documents _must_ exist, otherwise a 404 response will be returned and no document will be attached." }, { "info": { "name": "Add parties to a project", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:4000/v1/projects/:projectId/relationships/parties", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Parties that are already associated with the project are ignored.\n\nAll parties _must_ exist, otherwise a 404 response will be returned and no party will be added." }, { "info": { "name": "Remove a party from a project", "type": "http" }, "http": { "method": "DELETE", "url": "http://localhost:4000/v1/projects/:projectId/relationships/parties", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "All parties _must_ exist, otherwise a 404 response will be returned and no party will be removed." }, { "info": { "name": "Upload a document to a party", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:4000/v1/parties/:partyId/documents", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" } ], "body": { "type": "multipart-form", "data": [ { "name": "document", "type": "text", "value": "" }, { "name": "documentType", "type": "text", "value": "" } ] } }, "docs": "This will simultaneusly upload a document and attach it to the party." }, { "info": { "name": "Tag a party", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:4000/v1/parties/:partyId/relationships/tags", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add one or more tags to a party. If an expiration date is passed, it will be applied to all the tags." }, { "info": { "name": "delete-parties-:id-tags", "type": "http" }, "http": { "method": "DELETE", "url": "http://localhost:4000/v1/parties/:partyId/relationships/tags", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Remove one or more tags from a party." }, { "info": { "name": "Remove a document from a party", "type": "http" }, "http": { "method": "DELETE", "url": "http://localhost:4000/v1/parties/:partyId/relationships/documents/:documentId", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" }, { "name": "documentId", "value": "", "type": "path", "description": "Document ID" } ] }, "docs": "If you need to remove multiple documents at once you can use the alternative endpoint `DELETE /parties/{partyId}/relationships/documents`" }, { "info": { "name": "Remove a tag from a party", "type": "http" }, "http": { "method": "DELETE", "url": "http://localhost:4000/v1/parties/:partyId/relationships/tags/:tagId", "params": [ { "name": "partyId", "value": "", "type": "path" }, { "name": "tagId", "value": "", "type": "path" } ] }, "docs": "If you need to remove multiple tags at once you can use the alternative endpoint `DELETE /parties/{partyId}/relationships/tags`" }, { "info": { "name": "Remove a party from a project", "type": "http" }, "http": { "method": "DELETE", "url": "http://localhost:4000/v1/projects/:projectId/relationships/parties/:partyId", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "partyId", "value": "", "type": "path", "description": "Party ID" } ] }, "docs": "If you need to remove multiple parties at once you can use the alternative endpoint `DELETE /projects/{projectId}/relationships/parties`" }, { "info": { "name": "Fetch the current document request", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:4000/v1/parties/:partyId/document-request", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" }, { "name": "include", "value": "", "type": "query", "description": "List of comma-separated relationships to include in the result" } ], "body": { "type": "json", "data": "{}" } }, "docs": "This will return the latest document request sent for the party.\n\nAvailable include options:\n* `party`" }, { "info": { "name": "Send a new document request", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:4000/v1/parties/:partyId/document-request", "params": [ { "name": "partyId", "value": "", "type": "path", "description": "Party ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "If a request already exists for this party, this will send a reminder." }, { "info": { "name": "Bulk upload parties", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:4000/v1/import-parties", "body": { "type": "multipart-form", "data": [ { "name": "parties", "type": "text", "value": "" } ] } }, "docs": "This endpoint allows you to bulk upload parties via a CSV file.\n" }, { "info": { "name": "Fetch a party's compliance profile", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:4000/v1/parties/:partyId/compliance-profile", "params": [ { "name": "partyId", "value": "", "type": "path" }, { "name": "scope[type]", "value": "", "type": "query", "description": "Type of the resource to be used as scope" }, { "name": "scope[id]", "value": "", "type": "query", "description": "Id of the resource to be used as scope" } ] }, "docs": "This will return the compliance profile associated to the party. If the party is not tracking compliance you will get a 404 response.\nBy specifying a `scope` of type `projects`, the project-specific compliance profile will be returned.\n" }, { "info": { "name": "Assign compliance profile to a party", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:4000/v1/parties/:partyId/compliance-profile", "params": [ { "name": "partyId", "value": "", "type": "path" }, { "name": "scope[type]", "value": "", "type": "query", "description": "Type of the resource to be used as scope" }, { "name": "scope[id]", "value": "", "type": "query", "description": "Id of the resource to be used as scope" } ], "body": { "type": "json", "data": "{}" } }, "docs": "This operation will assign an existing compliance profile to a party. Unless the `scope` parameters are specified, the profile will be applied at the global level. To assign at the project level, include `scope[type]=projects` and `scope[id]={projectId}` to the query string." }, { "info": { "name": "Assign a compliance profile to a party", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:4000/v1/parties/:partyId/relationships/compliance-profile", "params": [ { "name": "partyId", "value": "", "type": "path" }, { "name": "scope[type]", "value": "", "type": "query", "description": "Type of the resource to be used as scope" }, { "name": "scope[id]", "value": "", "type": "query", "description": "Id of the resource to be used as scope" } ], "body": { "type": "json", "data": "{}" } }, "docs": "This will turn on compliance tracking on the party if it's currently turned off.\nTo assign a compliance profile for a specific project, specify it using the `scope` parameters." }, { "info": { "name": "Remove the compliance profile from a party", "type": "http" }, "http": { "method": "DELETE", "url": "http://localhost:4000/v1/parties/:partyId/relationships/compliance-profile", "params": [ { "name": "partyId", "value": "", "type": "path" } ] }, "docs": "This will turn off compliance tracking both at the global level and in each of the party's projects." }, { "info": { "name": "Update party custom data", "type": "http" }, "http": { "method": "PATCH", "url": "http://localhost:4000/v1/parties/:partyId/custom-data", "params": [ { "name": "partyId", "value": "", "type": "path" }, { "name": "scope[type]", "value": "", "type": "query", "description": "Type of the resource to be used as scope" }, { "name": "scope[id]", "value": "", "type": "query", "description": "Id of the resource to be used as scope" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Add, remove or update party custom fields.\n\nTo remove a field, set its value to `null`.\n\nA project `scope` can be specified; in that case the changes will be made only to the project specific values." } ] } ], "bundled": true }