Everything OpenSettle does sits on top of four primitives. Once you have a mental model of each, the rest of the product is predictable.
OpenSettle never takes possession of customer or merchant funds. A Router contract orchestrates the payment atomically.
In the same transaction, the Router forwards the merchant's share to their wallet and our fee to ours. There's no intermediate pool.
The same API drives Tron, Base, Polygon, Arbitrum, Solana, and Ethereum. Chain becomes a property on a payment, not a migration.
State changes emit signed webhooks within a second of on-chain finality. Idempotent, retried, and replayable.
The Router is a small, audited smart contract deployed per chain. It exposes three methods: settle, splitFor, and refund. Merchants can optionally deploy their own Router instance for audit isolation; most use the shared one.
When a customer sends a payment through the Router, it reads the merchant's settlement config, calculates the split based on the current tier, and forwards both amounts in a single transaction. No balance lives in the Router between transactions — it's a pure compute path.
Every POST request accepts an Idempotency-Key header. We cache the response for 24 hours. Retrying a request with the same key returns the original response without re-executing. This is the safe way to handle retries from your server or a webhook handler.