# `Worldpay.Marketplaces.Parties`
[🔗](https://github.com/iamkanishka/worldpay/blob/v1.0.0/lib/worldpay/marketplaces/marketplaces.ex#L1)

Worldpay **Parties API** — onboard and manage marketplace sellers.

Supports both orchestrated (single-call) and modular (incremental) flows.

## Orchestrated onboarding

    {:ok, party} = Worldpay.Marketplaces.Parties.create(%{
      "merchant" => %{"entity" => "default"},
      "partyReference" => "seller-001",
      "type" => "person",
      "personalDetails" => %{
        "firstName" => "Jane",
        "lastName" => "Doe",
        "dateOfBirth" => "1985-06-15"
      },
      "email" => "jane@example.com",
      "payoutInstruments" => [%{
        "type" => "bankAccount",
        "accountHolderName" => "Jane Doe",
        "accountNumber" => "12345678",
        "sortCode" => "010203"
      }],
      "balanceAccounts" => [%{"currency" => "GBP"}]
    }, config)

# `add_balance_account`

```elixir
@spec add_balance_account(String.t(), map(), Worldpay.Config.t()) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}
```

Create a balance account for a party.

# `add_beneficial_owner`

```elixir
@spec add_beneficial_owner(String.t(), map(), Worldpay.Config.t()) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}
```

Add a beneficial owner to a party.

# `add_payout_instrument`

```elixir
@spec add_payout_instrument(String.t(), map(), Worldpay.Config.t()) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}
```

Add a payout instrument (bank account or card) to a party.

# `create`

```elixir
@spec create(map(), Worldpay.Config.t()) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}
```

Create a party (orchestrated or modular).

# `delete_beneficial_owner`

```elixir
@spec delete_beneficial_owner(String.t(), String.t(), Worldpay.Config.t()) ::
  {:ok, nil} | {:error, Worldpay.Error.t()}
```

Delete a beneficial owner.

# `get`

```elixir
@spec get(String.t(), Worldpay.Config.t()) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}
```

Retrieve a party by ID.

# `get_beneficial_owner`

```elixir
@spec get_beneficial_owner(String.t(), String.t(), Worldpay.Config.t()) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}
```

Retrieve a beneficial owner.

# `update`

```elixir
@spec update(String.t(), map(), Worldpay.Config.t()) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}
```

Update a party.

# `update_beneficial_owner`

```elixir
@spec update_beneficial_owner(String.t(), String.t(), map(), Worldpay.Config.t()) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}
```

Update a beneficial owner.

# `verify_identity`

```elixir
@spec verify_identity(String.t(), Worldpay.Config.t()) ::
  {:ok, map()} | {:error, Worldpay.Error.t()}
```

Trigger KYC identity verification for a party.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
