PYMSTR
Docs

Split Payments

Distribute a single customer payment across multiple wallets atomically on-chain. Perfect for marketplaces.

How It Works#

When creating a payment, specify sellers with each recipient's smart wallet address and their cut. Pymstr enforces the splits on-chain — the customer's single transaction distributes funds to all recipients atomically.

cURL
curl -X POST https://api.pymstr.com/v1/payments \
  -H "Authorization: Bearer pk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": "100.00",
    "currency": "USD",
    "title": "Marketplace Order",
    "externalId": "order-789",
    "sellers": [
      { "address": "0x1234...abcd", "amount": "60.00" },
      { "address": "0x5678...efgh", "amount": "10.00" }
    ],
    "merchantAmount": "30.00"
  }'

Fee Breakdown#

Your splits must sum to the total: merchantAmount + sum(sellers) = amount. Pymstr's 1% fee is deducted proportionally from all participants.

Fee calculation
Request: amount=$100, merchantAmount=$30, sellers=[$60, $10]

Result (after 1% Pymstr fee):
├── Pymstr fee:  $1.00 Pymstr
├── Merchant:    $29.70 Your wallet
├── Seller 1:    $59.40 0x1234...abcd
└── Seller 2:    $9.90 0x5678...efgh

If merchantAmount is omitted, you get the remainder: amount - sum(sellers).

Constraints#

ConstraintValue
Max sellers per payment5
Min amount per recipientPer-currency minimum split (e.g. 0.1 USD) — see Currencies & Chains

Response#

Sellers are returned with their wallet addresses and amounts after fee deduction:

JSON
{
  "sellers": [
    {
      "address": "0x1234...abcd",
      "amount": "59.40"
    },
    {
      "address": "0x5678...efgh",
      "amount": "9.90"
    }
  ],
  "pymstrFee": "1.00",
  "merchantFee": "29.70"
}
Marketplace tip
Use merchantAmount to set your platform fee explicitly. This makes your revenue predictable regardless of how many sellers are in each order.