---
title: "Finalize staking request for Go Account"
method: POST
path: "/api/go-staking/v1/{coin}/accounts/{accountId}/requests/finalize"
tags: ["Go Account Staking"]
---

# Finalize staking request for Go Account

`POST /api/go-staking/v1/{coin}/accounts/{accountId}/requests/finalize`

Create a finalized staking request based on previously previewed data for a given asset and Go Account.

## Path parameters

- `coin` 'OFCSOL' | 'OFCSUI', required — Off-chain symbol for the coin.
- `accountId` string, required

## Request body

- union
  - StakeGoStakingRequest
    - `clientId` string, nullable
    - `amount` string, big-integer, required — Amount to stake, must be a positive value
    - `type` 'STAKE' — Must always be STAKE
    - `frontTransferSendRequest` FrontTransferSendRequest — Payload to create a Go staking transfer
      - `halfSigned` HalfSignedGoWithdrawal, required
        - `coin` string, required — The coin type, e.g. "ofctsui"
        - `recipients` object[], required — List of recipient addresses and amounts
          - `address` string, required — Destination address for the withdrawal
          - `amount` string, big-integer, required — Amount to send
        - `fromAccount` string, required — Source account id
        - `nonce` string, uuid, required — Unique identifier for the transaction
        - `timestamp` string, date-time, required — ISO 8601 timestamp when the half-signed payload was created
        - `feeString` string, required — Fee amount as a string
        - `shortCircuitBlockchainTransfer` boolean — Indicates whether to short-circuit blockchain transfer
        - `isIntraJXTransfer` boolean — Indicates whether the transfer is intra-JX
        - `payload` string, required — Raw JSON payload string representing the unsigned transaction data
        - `signature` string, required — Signature of the payload
      - `comment` string, nullable
      - `sequenceId` string, nullable
      - `goStakingRequestId` string, nullable
  - UnstakeGoStakingRequest
    - `clientId` string, nullable
    - `amount` string, big-integer, required — Amount to unstake, must be a positive value
    - `type` 'UNSTAKE' — Must always be UNSTAKE

## Response `200`

Staking request successfully created

- GoStakingRequest
  - `id` string, uuid, required
  - `clientId` string
  - `status` 'NEW' | 'PENDING' | 'FAILED' | 'REJECTED' | 'CONFIRMED' | 'COOLDOWN' | 'WARMUP' | 'UNSUPPORTED', required — Coarse-grained status for staking requests.
  - `type` 'STAKE' | 'UNSTAKE' | 'UNSUPPORTED' — Type of staking request. `STAKE` to delegate, `UNSTAKE` to undelegate. `UNSUPPORTED` is a fallback.
  - `coin` string
  - `goAccountId` string, required
  - `error` string
  - `amount` string, big-integer, required
  - `createdDate` string, date-time, required
  - `statusModifiedDate` string, date-time
  - `properties` GoStakingRequestProperties, required
    - `amount` string — Amount to stake or unstake, in base units
  - `source` 'MANUAL' | 'AUTO_STAKE'

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `500` — Server Error - Transient error please try again

---

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