---
title: "processErpUpdatesEventsV2"
method: POST
path: "/v2/erp/updates/events"
tags: ["erp"]
deprecated: true
---

# processErpUpdatesEventsV2

`POST /v2/erp/updates/events`

> **Deprecated.**

Handles updates from ERP systems using integration_id directly.
This is the v2 version that simplifies the API by accepting integration_id
instead of app_id and component_id.

## Request body

- ErpUpdatesEventsV2Request
  - `integration_id` string, uuid, required — UUID that identifies the integration configuration to use
  - `correlation_id` string — Optional ID that identifies the specific request for debugging purposes
  - `events` ErpEvent[], required — List of ERP events to process
    - `event_type` 'CREATE' | 'UPDATE' | 'DELETE', required — Type of event (create, update, delete)
    - `object_type` string, required — Type of the object being updated (business_partner, contract_account, etc.). Corresponds to "Event Name" from the integration UI.
    - `timestamp` string, date-time, required — Timestamp when the event occurred
    - `format` 'json' | 'xml', required — Format of the payload data
    - `payload` union, required — The object data payload - can be either a serialized string or a direct JSON object
      - string — The serialized object data payload (JSON, XML, etc.) as a string
      - object — Direct JSON object (will be automatically serialized)
    - `deduplication_id` string — Optional unique identifier for idempotency - prevents duplicate processing of the same event within 24 hours in context of the same integration. Must contain only alphanumeric characters, hyphens, and underscores.
    - `correlation_id` string — Optional per-event trace id for cross-system tracing (unique per business operation). Overrides the request-level meta.correlation_id for THIS event. When absent, the event inherits the request-level correlation_id; when both are absent, epilot mints its own event_id and the trace is epilot-only. Orthogonal to deduplication_id (idempotency).
    - `use_case_id` string, nullable — Resolved use case ID for the inbound event. Null when no use case matched or for events ingested before this field was introduced. Server-populated only — ignored if supplied on inbound requests.

## Response `200`

Some events failed to process

- object
  - `results` object[]
    - `event_id` string, required — ID of the processed event
    - `status` 'success' | 'error' | 'skipped' | 'ignored', required — Processing status for the event (skipped indicates duplicate deduplication_id, ignored indicates unconfigured event)
    - `message` string

## Other responses

- `400` — Bad request
- `401` — Unauthorized request
- `404` — Resource not found
- `500` — Internal Server Error

---

[API](https://skmtc.net/epilot/apis/integration-toolkit-api.md) · [All operations](https://skmtc.net/epilot/apis/integration-toolkit-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/epilot/integration-toolkit-api/revisions/cf02c9310c0f/schema)
