# Brands

> Create and manage a partner's client brands.

Source: https://www.onlucra.com/docs/api-brands

A [partner](https://www.onlucra.com/docs/api-partners) manages client brands. `GET /v1/brands` lists the ones its key reaches; act for one by sending its ID in `Lucra-Account`. A brand's own key gets an empty list.

## Create a brand

A partner creates a brand with `POST /v1/brands`. It becomes an active client right away, so every key of the partner reaches it. Send an `Idempotency-Key` so a retry doesn't create it twice:

```ts
const { data: brand } = await lucra.brands.create({
  body: { name: "Acme", email: "ops@acme.com", brandFee: { of: "ad_spend", percent: 10 } },
  headers: { "Idempotency-Key": "acme-onboarding" },
})
```

Leave out `brandFee` to use your default from `GET /v1/account`.

## Payment method

The brand pays for its own programs and creator payments. Until a brand member adds a card at the URL from `POST /v1/connections` (`provider: "card"`), those writes return `409 requirement_payment_method`. The [`onboarding` embed](https://www.onlucra.com/docs/embeds) walks them through it.

## Update a brand

`PATCH /v1/brands/:id` sets its `name`, `description`, logo (`profilePicture`) and `brandFee`. A new fee applies to spend from then on.

## Endpoints

- `GET /v1/brands` (read, SDK `lucra.brands.list`): List the brands this key reaches, and a partner's brands whose relationship ended
- `GET /v1/brands/:id` (read, SDK `lucra.brands.retrieve`): Get a brand
- `POST /v1/brands` (write, SDK `lucra.brands.create`): Create a brand a partner manages
- `PATCH /v1/brands/:id` (write, SDK `lucra.brands.update`): Update a brand a partner manages
