---
title: "User operation completed"
method: POST
path: "user_operation.completed"
---

# User operation completed

`POST user_operation.completed` (webhook)

Fired when an ERC-4337 UserOperation lands on-chain.

## Payload

- UserOperationCompletedWebhookPayload — Payload for the user_operation.completed webhook event.
  - `actual_gas_cost` string, required
  - `actual_gas_used` string, required
  - `block_number` number, required
  - `caip2` string, required
  - `log_index` number, required
  - `nonce` string, required
  - `paymaster` string, nullable, required
  - `sender` string, required
  - `success` boolean, required
  - `transaction_hash` string, required
  - `type` 'user_operation.completed', required — The type of webhook event.
  - `user_op_hash` string, required

## Acknowledgement `200`

Return a 200 status to indicate that the webhook was received successfully.

---

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