---
title: "Register an administrator who can approve withdrawal addresses"
method: POST
path: "/v1/admins"
tags: ["Partner API"]
---

# Register an administrator who can approve withdrawal addresses

`POST /v1/admins`

## Request

- Base URL: `https://sandbox.onlink.africa`
- URL: `https://sandbox.onlink.africa/v1/admins`
- Auth: API key in header `X-OnLink-Key`

The email domain must match the one configured for your partner account. This is checked server-side against an exact match — subdomains and lookalikes are refused.

## Request body

- AddPartnerAdminDto
  - `email` string, required: Administrator email. MUST be on the domain configured for your partner account — enforced server-side.
  - `name` string, required: Administrator name, for the audit trail.

## Response `201`

Administrator registered

- PartnerAdminResponseDto
  - `adminId` string, uuid, required: The administrator id. Use it for DELETE /v1/admins/{id}.
  - `email` string, required: Administrator email, returned whole. It is an address you supplied on your own configured domain, so echoing it discloses nothing you do not hold — unlike `approvalSentTo`, which is masked because it accompanies a live second factor.
  - `name` string, required: Administrator name, as you registered it.
  - `status` 'active' | 'removed', required: Lifecycle. Removal is recorded rather than deleted, so a removed administrator reads `removed` and never disappears from the audit trail — but only `active` administrators receive approval codes, and GET /v1/admins lists only those.

## Other responses

- `400`: Email is not on your configured domain

---

[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)
