---
title: "Complete withdrawal"
method: POST
path: "/user/{appId}/complete-withdraw"
tags: ["User"]
---

# Complete withdrawal

`POST /user/{appId}/complete-withdraw`

Submits the signed UserOperation to the ZeroDev bundler to complete the withdrawal. The paymaster sponsors the gas.

## Path parameters

- `appId` number, required

## Request body

- CompleteWithdrawRequest
  - `withdrawals` object[], required — Array of signed UserOperations to submit to the ZeroDev bundler
    - `network` string, required — Network identifier for this signed withdrawal
    - `userOp` object, required — The userOp object returned from request-withdraw
    - `signature` string, required — The signature of the UserOperation hash from the user EOA wallet

## Response `200`

Withdrawal completed successfully

- CompleteWithdrawResponse
  - `transactions` object[], required — Array of completed transactions, one per network
    - `network` string, required — Network identifier for this transaction
    - `transactionHash` string, required — The transaction hash of the completed withdrawal
    - `userOpHash` string — The UserOperation hash
  - `errors` object[] — Array of errors for networks that failed to complete
    - `network` string, required — Network identifier where the error occurred
    - `error` string, required — Error message describing what went wrong

## Other responses

- `400` — Bad request
- `404` — App not found
- `default` — Error

---

[API](https://skmtc.net/lit-protocol/apis/vincent-registry-api.md) · [All operations](https://skmtc.net/lit-protocol/apis/vincent-registry-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lit-protocol/vincent-registry-api/versions/825608de85fb/schema)
