---
title: "Add member"
method: POST
path: "/v2/api/partner/accounts/{id}/members"
tags: ["Partner"]
---

# Add member

`POST /v2/api/partner/accounts/{id}/members`

## Request

- Base URL: `https://api.withallo.com`
- URL: `https://api.withallo.com/v2/api/partner/accounts/{id}/members`
- Auth: API key in header `Authorization`

Adds a member to one of your accounts, with a phone number of their own. The member takes a seat the account already pays for and no one uses, or one more seat on the account's subscription, which you pay: Allo draws on your prepaid credit first, then charges your card on file for the rest. The seat includes the member's number, so the number is not billed on top. Allo sends the member no invitation email. Allo checks that a number is available before charging anything. Requires the `PARTNER` scope.

## Path parameters

- `id` string, required

## Request body

- object
  - `email` string, required: Becomes the member's login. It must not belong to an Allo account yet.
  - `name` string, required
  - `personal_mobile` string, nullable: Optional, E.164. The member's own mobile. It must not belong to an Allo account yet.
  - `role` 'ADMIN' | 'MANAGER' | 'MEMBER', nullable: Optional, default `MEMBER`. The member's role in the account's workspace.
  - `number_preference` object, required: The member's number.
    - `country` string, required: ISO country code.
    - `prefix` string, nullable: Optional. Digits the number should start with, after the country code, for example `+337` or `7`.
    - `esim` boolean, nullable: Optional, default `false`. Set to `true` to get a French mobile number that can carry an eSIM, which you can then order with `POST /v2/api/partner/accounts/{account_id}/esims`. eSIM numbers are only available with `country` set to `FR`, otherwise the request fails with `ESIM_NOT_AVAILABLE_IN_COUNTRY`.

## Response `201`

Member added

- object
  - `data` object
    - `id` string: The member's user id (`usr-*`). Pass it as `holder_id` to Order eSIM to register the member's eSIM to the member.
    - `account_id` string: The account the member was added to.
    - `email` string: The member's login.
    - `name` string
    - `role` 'ADMIN' | 'MANAGER' | 'MEMBER'
    - `phone_numbers` string[]: The member's own numbers.
    - `status` string
    - `activated` boolean: True once the member has signed in on a device.

## Other responses

- `400`: Validation error: MISSING_FIELD (`email`, `name`, `number_preference` or `number_preference.country`), INVALID_PHONE_NUMBER (`personal_mobile`), INVALID_MEMBER_ROLE, INVALID_NUMBER_PREFERENCE or ESIM_NOT_AVAILABLE_IN_COUNTRY.
- `401`: Invalid or missing API key
- `402`: Billing error, nothing is created. PARTNER_CREDIT_INSUFFICIENT: your prepaid credit does not cover the charge and your billing account has no card on file. PARTNER_BILLING_FAILED: your card was declined. PARTNER_SUBSCRIPTION_NOT_BILLABLE: the account has no subscription Allo can bill.
- `403`: The API key lacks the PARTNER scope.
- `404`: No account with this id was provisioned by your API key, or the account is deactivated (PARTNER_ACCOUNT_NOT_FOUND).
- `409`: Nothing is charged for PARTNER_ACCOUNT_ALREADY_EXISTS (the email or personal mobile already belongs to an Allo account), NO_NUMBER_AVAILABLE or REGULATORY_VERIFICATION_REQUIRED. Also PARTNER_ACCOUNT_BUSY (another number or member is being added to the account, `retryable: true`), PARTNER_ACCOUNT_DEACTIVATING (the account is being deactivated) or PARTNER_ACCOUNT_SUBSCRIPTION_CONFLICT (the account's subscription cannot be billed right now; retry when `retryable` is `true`).
- `429`: Rate limit exceeded
- `500`: PARTNER_BILLING_UNAVAILABLE: billing is temporarily unavailable, retry in a few seconds. PARTNER_NUMBER_SETUP_FAILED: the member's number could not be set up, and the member and the charge were removed. PARTNER_NUMBER_KEPT: the number was assigned but its setup did not complete, and it stays on the account with the member's seat. Do not retry these two: write to partnership@themobilefirst.co.

## Changes

- **2026-11-03** `46c77103dd14`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/withallo/apis/allo-api/changes/v2/api/partner/accounts/:id/members/post.md)

---

[API](https://skmtc.dev/withallo/apis/allo-api.md) - [All operations](https://skmtc.dev/withallo/apis/allo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/withallo/apis/allo-api/revisions/46c77103dd14?raw)
