> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getpara.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cancel operation

> Cancel remaining unsigned work for a yield operation with no unresolved signed transaction.



## OpenAPI

````yaml /openapi.yaml post /v1/wallets/{walletId}/yield/operations/{operationId}/cancel
openapi: 3.0.3
info:
  title: Para REST API
  version: '1.0'
  description: Server-to-server wallet creation and signing over HTTP
servers:
  - url: https://api.beta.getpara.com
    description: Beta
  - url: https://api.getpara.com
    description: Production
security:
  - ApiKeyAuth: []
paths:
  /v1/wallets/{walletId}/yield/operations/{operationId}/cancel:
    post:
      tags:
        - Yield
      summary: Cancel operation
      description: >-
        Cancel remaining unsigned work for a yield operation with no unresolved
        signed transaction.
      operationId: cancelYieldOperation
      parameters:
        - $ref: '#/components/parameters/WalletId'
        - $ref: '#/components/parameters/RequestId'
        - name: operationId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Cancelled operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/YieldOperation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: >-
            Wallet not ready, execution lock busy, or the operation has an
            unresolved signed transaction or is already complete.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  parameters:
    WalletId:
      name: walletId
      in: path
      required: true
      description: Wallet UUID. A malformed or inaccessible wallet ID returns `404`.
      schema:
        type: string
        format: uuid
        example: 0a1b2c3d-4e5f-6789-abcd-ef0123456789
    RequestId:
      name: X-Request-Id
      in: header
      required: false
      description: UUID for request tracing. Para returns one if omitted.
      schema:
        type: string
        format: uuid
  schemas:
    YieldOperation:
      type: object
      properties:
        id:
          type: string
          format: uuid
        walletId:
          type: string
          format: uuid
        chainId:
          type: integer
          enum:
            - 1
            - 8453
            - 11155111
        source:
          type: string
          enum:
            - aave-v3
        action:
          type: string
          enum:
            - deposit
            - withdraw
        amount:
          type: string
          description: Normalized decimal USDC amount, or all for withdrawals.
          example: '10.0'
        status:
          type: string
          enum:
            - pending
            - submitted
            - confirmed
            - failed
            - requires_action
            - cancelled
          description: >-
            pending work automatically retries recognized temporary RPC failures
            before signing and waits for another yield operation on the same
            wallet. submitted can mean signed and durably stored even when RPC
            acceptance is uncertain. confirmed requires two confirmations of the
            canonical block; this is not finality. failed means an on-chain
            revert or NONCE_CONSUMED; it does not guarantee that no funds moved.
            requires_action needs an explicit retry after correcting the issue.
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/YieldTransaction'
        error:
          type: object
          properties:
            code:
              type: string
              description: >
                AAVE_SUPPLY_CAP_EXCEEDED means the deposit would exceed the Aave
                market supply cap.

                The operation is requires_action and no deposit was signed.
                Retry the same request

                after capacity is available, or cancel its unsigned work. A
                confirmed token approval remains.

                NONCE_CONSUMED means the saved nonce was consumed in a finalized
                block without a receipt

                for the original hash. Check the position and transaction
                history before creating a new request.
            message:
              type: string
              nullable: true
            reviewId:
              type: string
              description: Existing policy review identifier when approval is required.
          required:
            - code
            - message
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      required:
        - id
        - walletId
        - chainId
        - source
        - action
        - amount
        - status
        - transactions
        - createdAt
        - updatedAt
    Error:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Machine-readable error code for programmatic handling
          example: INVALID_REQUEST
        message:
          type: string
          description: Human-readable error message
        transactionId:
          type: string
          format: uuid
          description: >-
            Persisted transaction record id. Present only when a broadcast
            request failed after a history row was created.
        failureStage:
          type: string
          enum:
            - mpc_sign
            - signature_apply
            - signer_verify
            - broadcast
            - monitor_timeout
          description: >-
            Which stage of the broadcast lifecycle failed. Present on persisted
            broadcast failures.
        failureCode:
          type: string
          description: >-
            Machine-readable failure reason from the underlying broadcast helper
            (e.g. `INSUFFICIENT_NATIVE_BALANCE`, `EXECUTION_FAILED`). Present on
            broadcast-stage failures.
        signedTransaction:
          type: string
          description: >-
            Signed transaction bytes. Present on broadcast failures that happen
            after signing completed.
      additionalProperties: true
      description: >
        All error responses include `code` and `message` fields. Some errors
        include extra fields (e.g. `walletId` on 409 Conflict).

        Broadcast failures that occur after a persisted transaction row is
        created include `transactionId`,

        `failureStage`, and (on broadcast-stage failures) `failureCode`, and
        also set the `x-transaction-id`

        response header. If signing completed before the failure,
        `signedTransaction` is included so callers

        can inspect or retry the already-signed bytes.


        Common error codes: `INVALID_REQUEST`, `UNAUTHORIZED`, `FORBIDDEN`,
        `NOT_FOUND`, `CONFLICT`, `WALLET_ALREADY_EXISTS`,
        `WALLET_ALREADY_CLAIMED`, `RATE_LIMITED`, `INTERNAL_ERROR`.
    YieldTransaction:
      type: object
      properties:
        phase:
          type: string
          enum:
            - approval
            - action
        hash:
          type: string
        nonce:
          type: integer
          minimum: 0
        transactionId:
          type: string
          format: uuid
          description: Corresponding transaction history record; intentKind is yield.
        status:
          type: string
          enum:
            - signed
            - submitted
            - confirmed
            - reverted
            - failed
          description: >-
            failed means the saved nonce was consumed in a finalized block
            without a receipt for this hash. The original signed bytes cannot
            execute again; check the position and transaction history before
            creating a new request.
        blockNumber:
          type: integer
        blockHash:
          type: string
      required:
        - phase
        - hash
        - nonce
        - transactionId
        - status
  responses:
    BadRequest:
      description: Invalid request body
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: INVALID_REQUEST
            message: type must be one of EVM, SOLANA, COSMOS, STELLAR, SUI
    Unauthorized:
      description: API key not provided
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: UNAUTHORIZED
            message: secret api key not provided
    Forbidden:
      description: Invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: FORBIDDEN
            message: invalid secret api key
    NotFound:
      description: Wallet not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: NOT_FOUND
            message: wallet not found
    TooManyRequests:
      description: Rate limit exceeded
      headers:
        Retry-After:
          schema:
            type: integer
          description: Seconds until the rate limit window resets
          example: 60
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: RATE_LIMITED
            message: Rate limit exceeded, try again shortly.
    ServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: INTERNAL_ERROR
            message: Internal Server Error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Your partner secret key (server-side only)
      x-default: sk_your_secret_key_here

````