---
title: "Confirm a withdrawal address with your administrator’s code"
method: POST
path: "/v1/wallets/{id}/confirm"
tags: ["Partner API"]
---

# Confirm a withdrawal address with your administrator’s code

`POST /v1/wallets/{id}/confirm`

## Request

- Base URL: `https://sandbox.onlink.africa`
- URL: `https://sandbox.onlink.africa/v1/wallets/{id}/confirm`
- Auth: API key in header `X-OnLink-Key`

Moves the address to pending_onlink_approval — not to active. OnLink approves every withdrawal address as well, so a correct code alone does not make an address usable.

## Path parameters

- `id` string, required

## Request body

- ConfirmWalletDto
  - `otp` string, required: The 6-digit code emailed to your registered administrator. Numeric only.

## Response `200`

Confirmed; awaiting OnLink review

- ConfirmWalletResponseDto
  - `walletId` string, uuid, required: The registration id. Use it for POST /v1/wallets/{id}/confirm and DELETE /v1/wallets/{id}.
  - `chain` 'tron', required: Network. Tron only at launch.
  - `asset` 'USDT', required: Asset. USDT only at launch.
  - `address` string, required: The withdrawal address, **in full** — exactly as stored, checksum already verified. Compare the entire string when you reconcile: a truncated rendering makes a lookalike address indistinguishable from the real one, and USDT sent to the wrong address is an irrecoverable burn.
  - `label` string, nullable, required: Your own label, echoed back. Never used for routing. `null` if you sent none.
  - `status` 'pending_partner_approval' | 'pending_onlink_approval' | 'active' | 'revoked', required: Where the address sits in the two-party approval. **`active` is the only deliverable value** — a correct administrator code moves it to `pending_onlink_approval`, and OnLink’s own review is what makes it usable. `revoked` is terminal.
  - `screeningStatus` 'pending' | 'clear' | 'flagged', required: Address-screening outcome. Never defaults to a clear verdict: a newly registered address reads `pending` until a screen has actually run.
  - `createdAt` string, date-time, required: When the address was registered, ISO 8601 UTC.
  - `nextStep` string, required: Plain-language next action. On success this says the address is awaiting OnLink review and is **not yet usable** — a correct code alone never makes an address deliverable.

## Other responses

- `400`: Incorrect code
- `403`: Code expired, cancelled, or too many incorrect attempts

---

[API](https://skmtc.dev/onlink/apis/onlink-partner-api.md) - [All operations](https://skmtc.dev/onlink/apis/onlink-partner-api/llms.txt) - [OpenAPI document](https://skmtc.dev/onlink/apis/onlink-partner-api/revisions/1d1c6a3671f2?raw)
