Skip to content

Split Links

Split Links allow you to distribute a single customer payment across multiple SecPaid recipients automatically. Each recipient receives their share minus their individual service fee — the customer always pays a single amount.

Split Types

SecPaid supports two distribution models:

split_type Description
normal Each recipient's share is a percentage of the total amount. Shares should sum to 100.
absolute Each recipient's share is a fixed EUR amount.

The default is normal if split_type is omitted.

Use POST /api/v2/createSplitLink. Pass the recipients as a JSON array in the body.

Example: Percentage-Based Split (normal)

Customer pays €150. Two recipients split 60/40.

curl --location 'https://app.secpaid.com/api/v2/createSplitLink' \
--header 'token: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "amount": 150.00,
    "recipient_note": "Service package",
    "split_type": "normal",
    "recipients": [
        { "token": "RECIPIENT_TOKEN_A", "share": 60 },
        { "token": "RECIPIENT_TOKEN_B", "share": 40 }
    ]
}'

Distribution: - Recipient A receives: €90 (minus their service fee) - Recipient B receives: €60 (minus their service fee)

Example: Fixed Amount Split (absolute)

Customer pays €100. Three recipients receive fixed amounts.

curl --location 'https://app.secpaid.com/api/v2/createSplitLink' \
--header 'token: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "amount": 100.00,
    "recipient_note": "Mixed service",
    "split_type": "absolute",
    "recipients": [
        { "token": "RECIPIENT_TOKEN_A", "share": 50.00 },
        { "token": "RECIPIENT_TOKEN_B", "share": 30.00 },
        { "token": "RECIPIENT_TOKEN_C", "share": 20.00 }
    ]
}'

Distribution: - Recipient A receives: €50 (minus their service fee) - Recipient B receives: €30 (minus their service fee) - Recipient C receives: €20 (minus their service fee)

Example: Single Recipient

You can also route the full payment to one specific recipient by passing a single entry:

{
    "amount": 200.00,
    "recipient_note": "Full payment",
    "split_type": "normal",
    "recipients": [
        { "token": "RECIPIENT_TOKEN", "share": 100 }
    ]
}

Important Notes

  1. Individual service fees — each recipient's service fee is calculated separately based on their agreement with SecPaid. Two recipients receiving equal shares may receive slightly different net amounts if their fees differ.

  2. Percentage precision — for normal splits, shares should sum to exactly 100. Rounding is handled according to SecPaid's rounding policy.

  3. Minimum thresholds — ensure each recipient's net amount after fees meets the minimum payout threshold.

  4. Recipient tokens — see Recipient Token for how to obtain them.

  5. Customer experience — the customer sees a single payment amount. The split happens server-side after the payment is processed.

Identifying Split Transactions

Split payments are flagged in getPayInTransactions with is_split_link: "true" and transaction_type: "Split".