---
title: "Update a partner"
method: POST
path: "/v1/partners/{id}"
tags: ["Partners"]
---

# Update a partner

`POST /v1/partners/{id}`

## Request

- Base URL: `https://api.affiliaterail.com`
- URL: `https://api.affiliaterail.com/v1/partners/{id}`
- Auth: HTTP bearer

**Scope:** `partners:write` (or `write`)

## Path parameters

- `id` string, required: Prefixed id (`part_…`)

## Request body

- PartnerUpdate
  - `first_name` string, nullable
  - `last_name` string, nullable
  - `display_name` string, nullable
  - `company_name` string, nullable
  - `website_url` string, uri, nullable
  - `country_code` string, nullable
  - `handle` string
  - `group_id` string, nullable: Prefixed id (`grp_…`)
  - `min_payout_minor` integer, nullable: Integer minor units (cents, pence). Never a float, never a string.
  - `status` 'active' | 'suspended': Suspend or reinstate. Approval of a pending partner goes through applications.
  - `suspension_reason` string, nullable
  - `tag_ids` string[]: Replaces the partner's tags
  - `metadata` object, nullable: Your own key/value data, stored as given

## Response `200`

The updated partner

- Partner
  - `id` string, required: Prefixed id (`part_…`)
  - `object` 'partner', required
  - `program_id` string, required: Prefixed id (`prg_…`)
  - `group_id` string, nullable, required: Prefixed id (`grp_…`)
  - `email` string, email, required
  - `first_name` string, nullable, required
  - `last_name` string, nullable, required
  - `display_name` string, nullable, required
  - `company_name` string, nullable, required
  - `website_url` string, nullable, required
  - `country_code` string, nullable, required
  - `language_code` string, nullable, required
  - `handle` string, required: The `?ref=` value
  - `status` 'pending' | 'active' | 'declined' | 'suspended', required
  - `decline_reason` string, nullable, required
  - `suspension_reason` string, nullable, required
  - `currency` string, required: The program's currency; every amount on this partner is in it
  - `min_payout_minor` integer, nullable, required: Per-partner threshold override; null means the program's
  - `terms_accepted_at` string, date-time, nullable, required: ISO-8601, UTC
  - `terms_version` string, nullable, required
  - `completed_onboarding` boolean, required
  - `email_first_referral` boolean, required
  - `email_new_referral` boolean, required
  - `email_payout_paid` boolean, required
  - `metadata` object, nullable, required: Your own key/value data, stored as given
  - `stats` PartnerStats
    - `clicks` integer, required
    - `referrals` integer, required
    - `customers` integer, required
    - `commissions_minor` integer, required: Integer minor units (cents, pence). Never a float, never a string.
    - `paid_minor` integer, required: Integer minor units (cents, pence). Never a float, never a string.
    - `currency` string, required: ISO-4217
  - `created_at` string, date-time, required: ISO-8601, UTC
  - `updated_at` string, date-time, required: ISO-8601, UTC

## Other responses

- `400`: Invalid request
- `401`: Missing or unknown API key
- `403`: Key lacks the required scope
- `404`: No such object in your organization
- `422`: The request was understood and refused
- `429`: Rate limited: see Retry-After

---

[API](https://skmtc.dev/affiliaterail/apis/affiliaterail-api.md) · [All operations](https://skmtc.dev/affiliaterail/apis/affiliaterail-api/llms.txt) · [OpenAPI document](https://skmtc.dev/affiliaterail/apis/affiliaterail-api/revisions/ea41f345c092?raw)
