Tropic provides various event types for configuring webhooks, giving you precise control over the events you want to receive. To minimize the load on your webhook intake service, we recommend selecting only the events that are essential for your needs. Webhooks enable Tropic to send a POST request to your specified URL whenever specific events occur. The POST request includes details about the webhook and a payload tailored to the event type.
Tropic will retry sending webhooks for up to three days if an error response is received. A POST request is considered failed if a 4xx or 5xx response is returned. In total, Tropic will make up to 17 retry attempts over the three-day period, with intervals between retries determined by an exponential backoff algorithm.
Comment
{
"id": "string",
"commentable": {
"id": "string",
"type": "string"
},
"user": {
"id": "string",
"email": "string",
"first_name": "string",
"last_name": "string",
"department_id": "string",
"job_title": "string",
"manager_id": "string",
"role": "string",
"deactivated": "boolean"
},
"content": "string",
"created_at": "string",
"updated_at": "string"
}
Contract
{
"id": "string",
"supplier": {
"id": "string",
"name": "string",
"formerly_known_as": "string",
"slug": "string",
"domain": "string",
"supplier_risk_level": "string",
"next_risk_assessment_date": "string",
"business_use_case": "string",
"overall_sentiment": "string",
"business_criticality": "string",
"suggested_fields": "object",
"custom_fields": "array"
},
"currency": "string",
"total_contract_value_cents": "integer",
"annual_contract_value_cents": "integer",
"monthly_contract_value_cents": "integer",
"start_date": "string",
"end_date": "string",
"end_date_not_applicable": "boolean",
"status": "string",
"stage": "string",
"renewal_type": "string",
"originating_purchase_request_id": "string",
"next_purchase_request_id": "string",
"department": {
"id": "string",
"name": "string"
},
"category": {
"id": "string",
"name": "string",
"description": "string"
},
"contract_owner_users": "array",
"opt_out_date": "string",
"renewal_reminder_date": "string",
"billing_frequency": "string",
"payment_terms": "string",
"payment_method": "string",
"purchased_from": {
"id": "string",
"name": "string",
"slug": "string",
"domain": "string"
},
"suggested_fields": "object",
"custom_fields": "array",
"documents": "array"
}
Document
{
"id": "string",
"documentables": "array",
"name": "string",
"file_name": "string",
"file_type": "string",
"summary": "string",
"document_type": {
"id": "string",
"name": "string"
},
"expires_at": "string",
"owners": "array",
"uploaded_by": {
"id": "string",
"email": "string",
"first_name": "string",
"last_name": "string",
"department_id": "string",
"job_title": "string",
"manager_id": "string",
"role": "string",
"deactivated": "boolean"
},
"uploaded_at": "string",
"view_link": "string",
"limited_access": "boolean",
"download_link": "string"
}
General Request
{
"id": "string",
"suppliers": "array",
"department": {
"id": "string",
"name": "string"
},
"general_category": {
"id": "string",
"name": "string",
"description": "string"
},
"requestor": {
"id": "string",
"email": "string",
"first_name": "string",
"last_name": "string",
"department_id": "string",
"job_title": "string",
"manager_id": "string",
"role": "string",
"deactivated": "boolean"
},
"submitted_on": "string",
"document_ids": "array",
"workflow_name": "string",
"form_response_data": "object",
"form_response_data_details": "array"
}
General Request Task
{
"id": "string",
"general_request_id": "string",
"name": "string",
"status": "string",
"type": "string",
"assignees": "array",
"instructions": "string",
"due_date": "string",
"completed_at": "string",
"link": "string"
}
Price Benchmark
Instant Price Benchmark
{
"id": "string",
"type": "string",
"status": "string",
"supplier": {
"id": "string",
"name": "string"
},
"originator": {
"type": "string",
"id": "string"
},
"external_benchmark_request_id": "string",
"overall_savings_opportunity": "string",
"unavailable_reason": "string",
"notes": "string",
"requested_at": "string",
"created_at": "string",
"updated_at": "string",
"line_items": "array"
}
Manual Price Benchmark
{
"id": "string",
"type": "string",
"status": "string",
"supplier": {
"id": "string",
"name": "string"
},
"originator": {
"type": "string",
"id": "string"
},
"external_benchmark_request_id": "string",
"overall_savings_opportunity": "string",
"unavailable_reason": "string",
"notes": "string",
"requested_at": "string",
"created_at": "string",
"updated_at": "string",
"line_items": "array"
}
Purchase Request
{
"id": "string",
"supplier": {
"id": "string",
"name": "string",
"formerly_known_as": "string",
"slug": "string",
"domain": "string",
"supplier_risk_level": "string",
"next_risk_assessment_date": "string",
"business_use_case": "string",
"overall_sentiment": "string",
"business_criticality": "string",
"suggested_fields": "object",
"custom_fields": "array"
},
"anticipated_spend_cents": "integer",
"anticipated_spend_currency": "string",
"department": {
"id": "string",
"name": "string"
},
"type": "string",
"purchase_category": {
"id": "string",
"name": "string",
"description": "string"
},
"requestor": {
"id": "string",
"email": "string",
"first_name": "string",
"last_name": "string",
"department_id": "string",
"job_title": "string",
"manager_id": "string",
"role": "string",
"deactivated": "boolean"
},
"submitted_on": "string",
"target_signature_date": "string",
"document_ids": "array",
"workflow_name": "string",
"managed_by": "string",
"originating_contract_id": "string",
"next_contract_ids": "array",
"purchased_from": {
"id": "string",
"name": "string",
"slug": "string",
"domain": "string"
},
"form_response_data": "object",
"form_response_data_details": "array"
}
Purchase Request Task
{
"id": "string",
"purchase_request_id": "string",
"questionnaire_id": "string",
"form_response_data": "object",
"form_response_data_details": "array",
"name": "string",
"status": "string",
"type": "string",
"assignees": "array",
"instructions": "string",
"due_date": "string",
"completed_at": "string",
"link": "string"
}
Comment Events
Triggered when a new comment is added.
Example payload:
{
"data": {
"object": Comment Object
},
"version": "1.0.0",
"event_type": "comment.created",
"resource_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72",
"resource_type": "comment"
}
Contract Events
Triggered when a new contract is created.
Example payload:
{
"data": {
"object": Contract Object
},
"version": "1.0.0",
"event_type": "contract.created",
"resource_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72",
"resource_type": "contract"
}
Triggered when a contract is updated.
Example payload:
{
"data": {
"object": Contract Object
"changes": {
"status": {
"from": "active"
},
"total_contract_value_cents": {
"from": 1000000
}
}
},
"version": "1.0.0",
"event_type": "contract.updated",
"resource_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72",
"resource_type": "contract"
}
Document Events
Triggered when a document is linked to a purchase request.
Example payload:
{
"data": {
"object": Document Object,
"purchase_request_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72"
},
"version": "1.0.0",
"event_type": "document.purchase_request_linked",
"resource_id": "9be59433-8ce8-4f43-8ce9-acfd9421e208",
"resource_type": "document"
}
Triggered when a document is linked to a general request.
Example payload:
{
"data": {
"object": Document Object,
"general_request_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72"
},
"version": "1.0.0",
"event_type": "document.general_request_linked",
"resource_id": "9be59433-8ce8-4f43-8ce9-acfd9421e208",
"resource_type": "document"
}
General Request Events
Triggered when a new general request is created.
Example payload:
{
"data": {
"object": General Request Object
},
"version": "1.0.0",
"event_type": "general_request.created",
"resource_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72",
"resource_type": "general_request"
}
Triggered when a general request is updated.
Example payload:
{
"data": {
"object": General Request Object,
"changes": {
"anticipated_spend_cents": {
"from": 1000000
}
}
},
"version": "1.0.0",
"event_type": "general_request.updated",
"resource_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72",
"resource_type": "general_request"
}
General Request Task Events
Triggered when a general request task is created.
Example payload:
{
"data": {
"object": General Request Task Object
},
"version": "1.0.0",
"event_type": "general_request_task.created",
"resource_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72",
"resource_type": "general_request_task"
}
Triggered when a general request task's status is updated.
Example payload:
{
"data": {
"object": General Request Task Object
"current_status": "skipped",
"previous_status": "not_started",
"status_changed_at": "2025-05-08 14:30:00"
},
"version": "1.0.0",
"event_type": "general_request_task.status_changed",
"resource_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72",
"resource_type": "general_request_task"
}
Price Benchmark Events
Triggered when a price benchmark is created.
Example payload (instant):
{
"data": {
"object": Instant Price Benchmark Object
},
"version": "1.0.0",
"event_type": "price_benchmark.created",
"resource_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72",
"resource_type": "instant_price_benchmark"
}
Example payload (manual):
{
"data": {
"object": Manual Price Benchmark Object
},
"version": "1.0.0",
"event_type": "price_benchmark.created",
"resource_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72",
"resource_type": "manual_price_benchmark"
}
Purchase Request Events
Triggered when a new purchase request is created.
Example payload:
{
"data": {
"object": Purchase Request Object
},
"version": "1.0.0",
"event_type": "purchase_request.created",
"resource_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72",
"resource_type": "purchase_request"
}
Triggered when a purchase request is updated.
Example payload:
{
"data": {
"object": Purchase Request Object,
"changes": {
"anticipated_spend_cents": {
"from": 1000000
}
}
},
"version": "1.0.0",
"event_type": "purchase_request.updated",
"resource_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72",
"resource_type": "purchase_request"
}
Purchase Request Task Events
Triggered when a purchase request task is created.
Example payload:
{
"data": {
"object": Purchase Request Task Object
},
"version": "1.0.0",
"event_type": "purchase_request_task.created",
"resource_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72",
"resource_type": "purchase_request_task"
}
Triggered when a purchase request task's status is updated.
Example payload:
{
"data": {
"object": Purchase Request Task Object
"current_status": "skipped",
"previous_status": "not_started",
"status_changed_at": "2025-05-08 14:30:00"
},
"version": "1.0.0",
"event_type": "purchase_request_task.status_changed",
"resource_id": "b24897c5-566f-43b0-b8c1-6c55a30c6c72",
"resource_type": "purchase_request_task"
}