---
title: "Collect money for other sellers through a · Agent Wranglers"
url: https://agentwranglers.se/playbook/payments/amounts-and-orders/marketplace-funds
updated: 2026-10-21
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Collect money for other sellers through a platform product

For AI agents: the [site map](https://agentwranglers.se/llms.txt) lists everything here, and this page sits under [Amounts and orders](https://agentwranglers.se/playbook/payments/amounts-and-orders.md).

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers). Updated 2026-10-21.

- Level: Required
- Chapter: [Amounts and orders](https://agentwranglers.se/playbook/payments/amounts-and-orders)
- Rule: When buyers pay you for what other sellers provide, take the payments through a platform product, such as Stripe Connect or Adyen for Platforms. Never hold the sellers' money in your own account.
- Risk: A law broken
- Applies when: The project takes payments.
- How: Taking money from a buyer and passing it to a seller can be a payment service that needs a licence under PSD2. Its exclusion for commercial agents covers an agent that acts for only the buyer or only the seller. A platform that acts for both is excluded only if it never holds or controls the money. A platform product lets the provider onboard and verify each seller, hold the funds and pay them out. Choose the charge type that fits, since it decides who carries refunds and disputes. Take your fee as an application fee on each charge. Record the duty in [Keep a register of every duty that applies](https://agentwranglers.se/playbook/compliance/scope-and-ownership/obligations-register).
- Check: Search the code for transfers from your own bank account to sellers. None exist. Every payout to a seller goes to a verified connected account at the provider.

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### JavaScript example

```js
await stripe.paymentIntents.create({
  amount: 45000,
  currency: 'sek',
  application_fee_amount: 4500,
  transfer_data: { destination: sellerAccountId },
  metadata: { order_id: order.id },
}, { idempotencyKey: `order-${order.id}-attempt-${order.attempt}` })
```

### Python example

```python
stripe.PaymentIntent.create(
    amount=45000,
    currency="sek",
    application_fee_amount=4500,
    transfer_data={"destination": seller_account_id},
    metadata={"order_id": order.id},
    idempotency_key=f"order-{order.id}-attempt-{order.attempt}",
)
```

## Sources

- [PSD2 Directive (EU) 2015/2366, Article 3(b) and recital 11](https://eur-lex.europa.eu/eli/dir/2015/2366/oj)
- [Stripe Connect charge types](https://docs.stripe.com/connect/charges)

## Related rules

- [Keep a register of every duty that applies](https://agentwranglers.se/playbook/compliance/scope-and-ownership/obligations-register) in Compliance
- [Check traders before they sell on your marketplace](https://agentwranglers.se/playbook/compliance/online-platforms/trader-traceability) in Compliance

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/payments/amounts-and-orders/marketplace-funds">Agent Wranglers payments playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Adding a fee for paying by consumer card in the EU](https://agentwranglers.se/playbook/payments/amounts-and-orders/no-card-surcharge)
- [Amounts and orders](https://agentwranglers.se/playbook/payments/amounts-and-orders)
