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...efghIf merchantAmount is omitted, you get the remainder: amount - sum(sellers).
Constraints#
| Constraint | Value |
|---|---|
| Max sellers per payment | 5 |
| Min amount per recipient | Per-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.