Ask for an invitation
Menu

API reference

Split rules

A split rule shares each paid order it applies to among saved addresses. Nothing is ever sent by a rule: when an order is paid, the engine creates one payout of kind split_leg per share in awaiting_approval, and a key-holding member approves them in the dashboard, together or one by one. A rule made or changed through the API is awaiting_approval until an Owner or Finance member confirms it with a passkey (split_rule.* has no events of its own; each leg sends the ordinary payout.* events).

The split_rule object

JSON

{
  "id": "srl_4n7q0t2w5z8c1f3h6k9m2p4r",
  "object": "split_rule",
  "livemode": true,
  "created": "2026-10-11T14:20:00.000Z",
  "name": "Roaster share",
  "status": "active",
  "scope": {
    "kind": "product",
    "product": "prod_8m2k5q9x1w4e7r0t3y6u2i5o",
    "payment_link": null
  },
  "shares": [
    {
      "saved_address": "dst_3f7k0n2p5s8v1x4z7b0d3g6j",
      "percent": "30.00"
    },
    {
      "saved_address": "dst_9c2e5h8k1n4q7t0w3z6b9d2g",
      "percent": "10.00"
    }
  ],
  "kept_percent": "60.00",
  "remind_daily": false,
  "pending": {
    "legs": 14,
    "totals": [
      {
        "asset": "base:usdc",
        "amount": "412.800000"
      }
    ]
  }
}
Table: The split_rule object: The split_rule object (1)
FieldMeaning
statusawaiting_approval (made or changed, not yet confirmed by a key holder; creates no legs), active, inactive.
scope.kindproduct, payment_link or merchant (every order). At most one active rule applies to an order: product, then payment link, then merchant.
shares1 to 20 entries. Each saved_address must be active and of kind other. percent has two decimals and is above zero; the total is at most 100.00.
kept_percentWhat stays with the merchant: 100 minus the shares.
pendingLegs waiting for approval. A leg under US$1.00 for one destination waits until that destination's total passes US$1.00.
Table: The split_rule object: The split_rule object (2)
CallBodyAnswer
POST /v1/split_rulesname (1 to 40), scope, shares, remind_daily?201 with status: "awaiting_approval". Idempotency-Key accepted.
GET /v1/split_rules/{id}NoneThe object.
GET /v1/split_rulesList parameters; status, scope_kindA list.
PATCH /v1/split_rules/{id}Any of name, shares, remind_daily200; a change of shares returns the rule to awaiting_approval (the old shares keep applying until it is confirmed).
DELETE /v1/split_rules/{id}None200 with status: "inactive". Legs already created stay and can still be approved or cancelled.

Errors: split_rule_invalid, resource_missing, saved_address_not_active. For an Unverified merchant the legs are approved one at a time inside the limit on payouts to others (no batches).

Every field

Fields of the split_rule object

Fields of the split_rule object
FieldTypeMeaning
idstringUnique identifier: the object prefix, an underscore, 24 lower-case Crockford base32 characters.
objectstringThe type of this object.
livemodebooleantrue for live mode (real money); false for test mode (simulated payments).
createdstring (date-time)When the object was created. RFC 3339, UTC, milliseconds.
namestringThe merchant's name for the rule.
statusstringawaiting_approval: made or changed, not yet confirmed by a key-holding member with a passkey; creates no legs. One of awaiting_approval, active, inactive.
scopeobjectWhich paid orders the rule applies to.
scope.kindstringOne of product, payment_link, merchant.
scope.productstring or nullThe prod_ id when the scope is a product; null otherwise.
scope.payment_linkstring or nullThe plink_ id when the scope is a payment link; null otherwise.
sharesarray of objects1 to 20 shares; the percents total at most 100.00.
shares[].saved_addressstringThe dst_ id of the active saved address that receives the share.
shares[].percentstringIts share of each order, with two decimals.
kept_percentstringWhat stays with the merchant: 100 minus the shares.
remind_dailybooleantrue when the Owners and Finance members are reminded each day of legs waiting for approval.
pendingobjectLegs made by the rule and waiting for approval.
pending.legsintegerHow many.
pending.totalsarray of objectsTheir total per asset.

Endpoints