Update an entity by ID
Update an entity by ID
Update attributes and data for an existing person or company β in the gu1 universal entity model for KYC, KYB, and risk analysis, with examples for update use.
PATCH
Update an entity by ID
Overview
Updates an existing entityβs attributes and data. This endpoint automatically triggers a re-evaluation of the entityβs risk score and emits real-time update events.Endpoint
Authentication
Requires a valid API key in the Authorization header:Path Parameters
The gu1 ID of the entity to update
Request Body
All fields from the create schema are available excepttype (entity type cannot be changed). All fields are optional - only include the fields you want to update.
Update the entityβs display name
External ID cannot be updated with this endpoint. Use Change external ID (
POST /entities/change-external-id) with a mandatory reason (min. 5 characters). PATCH update routes ignore externalId in the body.Update tax identification number
Update root-level contact email. Omit to leave unchanged; send
null to clear.Update root-level contact phone. Omit to leave unchanged; send
null to clear.Root nationality (ISO 3166-1 alpha-2 when stored). Omit to leave unchanged;
null clears. Updating entityData person/company nationality may refresh the root field when sent together.Update ISO 3166-1 alpha-2 country code
Update custom attributes (merges with existing attributes)
Update type-specific data (merges with existing entityData)
Entity lifecycle status (
active, inactive, blocked, under_review, suspended, pending_verification, expired, rejected, deleted).Required with reason: Any status change must include reason for audit.Reason for the update (especially important when changing status to
blocked or rejected).Required when: Changing status to blocked, rejected, or suspended.Best practice: Always provide a reason for audit trail purposes, even when not required.When
true, automatic status updates are disabled for this entity: risk matrix rules and automation actions such as set_entity_status do not change status. Manual updates via this endpoint (or the UI) still apply.- Default:
false(rules and automations may change status when configured). - Set to
falseexplicitly to remove the lock and allow automatic status changes again. - Does not disable risk score calculation or other rule side effectsβonly status writes from rules/automations.
reason: if changeStatusManual changes (enable or disable), send reason in the same PATCH body for audit (same as status changes).Risk matrices
Assign or replace which risk matrices apply to this entity. Same semantics as Create entity (riskMatrixId / riskMatrixIds).
Legacy: one UUID, an array of UUIDs, or
null to clear all assigned matrices. When riskMatrixIds is sent non-empty, it takes precedence over this field.Preferred for multiple matrices: ordered list of UUIDs belonging to your organization. Send
[] (or riskMatrixId: null) to remove all assignments. Each UUID must exist in your org; otherwise the API returns 400 with code INVALID_RISK_MATRIX.Updating matrices assigns them on the entity record only. This endpoint does not run the rules engine or return
rulesExecutionSummary. To evaluate rules after assignment, call Analyze entity or wait for lifecycle triggers (entity_created, kyc_approved, etc.) on matrices whose triggers match the event.The same body fields apply to Update by external ID and PATCH /entities/by-tax-id/{taxId}.Response
The updated entity object with all current values
Newly created evaluation triggered by the update
id- Evaluation IDentityId- Entity IDdecision- βPENDINGβ (awaiting processing)evaluationType- βSYSTEMβreasons- Array with βRe-evaluation triggered by attribute changeβ
The entity state before the update (for audit/comparison)
This endpoint does not return
rulesResult or rulesExecutionSummary. The rules engine is not executed on update; those fields are only returned by endpoints that run rules (create, create-automatic, enrich, refresh, analyze).Behavior
When you update an entity, the system automatically:- Records the change in the entity events log with a before/after snapshot
- Triggers re-evaluation to recalculate risk score based on new data
- Emits real-time event to notify connected clients of the update
- Maintains audit trail for compliance and review purposes
Examples
Update Person Income
Update Company Information
Update Custom Attributes Only
Update Transaction Status
Response Example
Error Responses
404 Not Found
400 Bad Request - Invalid Data
401 Unauthorized
500 Internal Server Error
Use Cases
Update After KYC Verification
Progressive Profile Enrichment
Transaction Resolution
Best Practices
- Partial Updates: Only send the fields you want to change - no need to send the entire entity
- Monitor Re-evaluations: Check the returned evaluation ID to track risk score recalculation
- Audit Trail: Use the
previousEntityin the response to maintain change history - Real-time Sync: Updates emit WebSocket events for real-time UI synchronization
- Idempotency: Safe to retry - updates with same data will not create duplicate events
Next Steps
- Get Entity - View updated entity details
- List Entities - Query entities with filters
- Upsert Entity - Create or update in one operation
- Request AI Analysis - Get updated risk assessment