---
search:
  tags:
    - Subscriptions
    - POST
seo:
  description: >-
    Gives a customer a seat. The customer must belong to the same shop…
    Reference for the POST /subscription_purchases/{id}/seats endpoint in the
    Bolder API v2.
sidebar:
  label: Add a membership seat
  badge: POST
title: Add a membership seat
type: openapi-operation
---
Gives a customer a seat. The customer must belong to the same shop and to the same company as the purchasing customer, can hold only one seat per purchase, and the purchase must not have reached `max_seats` (the purchasing customer counts as one). By default the call is made on behalf of the seller (`initiated_by: admin`) and notification emails are sent to the added customer and to the buyer. With `initiated_by: buyer` (the buyer managing their own seats) no emails are sent, and the plan must allow self-service seat management. Sends `subscription.seat_added`. Rel: `subscriptions:create_seat`.

`POST /subscription_purchases/{id}/seats`

**Request body** (`application/json`, required)

- `contact_id` (integer, required) — Customer to give the seat to
- `initiated_by` (string)

Request body example:

```json
{
  "contact_id": 4521
}
```

**Responses**

- `201` — Seat created
- `403` — Token lacks \`orders.write\` on the purchase's account
- `404` — Purchase or customer not found, or the purchase is not of a membership plan
- `422` — \`contact\_id\` missing, seat limit reached, customer already has a seat, customer is not in the buyer's company, or self-service is not enabled for the plan (with \`initiated\_by\` buyer)

Response example, 201:

```json
{
  "_links": {
    "property1": {
      "href": "string",
      "templated": true,
      "method": "get",
      "title": "string",
      "type": "string"
    },
    "property2": {
      "href": "string",
      "templated": true,
      "method": "get",
      "title": "string",
      "type": "string"
    }
  },
  "id": 0,
  "subscription_purchase_id": 0,
  "contact_id": 0,
  "contact_email": "string",
  "contact_name": "string",
  "created_on": "2019-08-24"
}
```
