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

Worldpay **Split Payments API** — allocate a payment across balance accounts.

Requires a prior card payment authorization and settlement via
`Worldpay.CardPayments`.

## Flow

1. Authorize → `Worldpay.CardPayments.authorize/3`
2. Settle → `Worldpay.CardPayments.settle/3`
3. Split → `Worldpay.Marketplaces.SplitPayments.split/3`

## Example

    {:ok, _} = Worldpay.Marketplaces.SplitPayments.split(%{
      "merchant" => %{"entity" => "default"},
      "paymentId" => payment_id,
      "splits" => [
        %{"type" => "marketplace", "amount" => %{"value" => 8500, "currency" => "GBP"}, "partyId" => seller_id},
        %{"type" => "fee",         "amount" => %{"value" => 1500, "currency" => "GBP"}, "partyId" => platform_id}
      ]
    }, config)

# `split`

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

Split a settled payment across balance accounts.

# `split_refund`

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

Split refund across balance accounts.

---

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