Why slippage margin exists
Without slippage margin, businesses face a frustrating cycle:- Customer owes $100 and sends the equivalent in crypto
- By the time the transaction confirms (minutes to hours later), price fluctuation means the fiat value is now $99.50
- The system marks the invoice as partially paid, even though the customer acted in good faith
- The customer is asked to send another transaction to cover the $0.50 difference
- That second transaction also incurs network fees, which may exceed the shortfall
Formula
If the total fiat value of all received crypto transactions meets or exceeds the minimum acceptable amount, the payment is considered paid in full. If it falls below the minimum, it remains partially paid regardless of the slippage margin.
The three-level fallback chain
Slippage margin can be configured at three levels. The system uses a fallback chain to determine which value applies:Level 1: Price-level margin
Each individual price can have its own slippage margin. This is the most specific setting and takes priority over all others when set to a value greater than zero. When to use: When specific products have different risk profiles. A high-value product might warrant a tighter margin, while a low-value product could tolerate more flexibility.Level 2: Account-level default
Every account has a default slippage margin that applies to all prices that do not have their own margin set. This provides a single place to control slippage tolerance across all products. When to use: When you want a consistent margin across your entire catalog without configuring each price individually.Level 3: System default
If neither the price nor the account has a slippage margin configured (both are zero), the system applies a built-in default. This ensures that every verification has at least some tolerance. When to use: This is automatic. It acts as a safety net so that new accounts and prices have reasonable behavior out of the box.Fallback rules
The system evaluates the chain from most specific to least specific:- If the price has a slippage margin greater than zero, use that value
- Otherwise, if the account has a default slippage margin greater than zero, use that value
- Otherwise, use the system default
A value of zero at any level means “not configured” and triggers the fallback to the next level. Setting a price’s slippage margin to zero does not mean “no tolerance” — it means “use whatever the account or system default is.”
Fallback examples
When slippage is evaluated
Slippage margin is applied at verification time — the moment the system checks whether a crypto payment satisfies an invoice. This means:- The slippage value is read from the current configuration when verification runs
- It is not stored on the invoice or locked in at invoice creation time
- It is not retroactively applied to previously completed verifications
Impact of changing slippage margin
Already-paid invoices are not affected
Once an invoice is marked as paid, that status is permanent. Changing the slippage margin has no retroactive effect on invoices that have already been verified and marked as paid. Example:- Account has a 1% slippage margin
- A 99.20 crypto payment
- Verification runs and marks the invoice as paid (since 99.00)
- Account holder later changes slippage to 0.5%
- The $100 invoice remains paid — it is not re-evaluated
Unpaid invoices use the new value
Invoices in a pending or partially paid state are affected by slippage changes the next time verification runs. Example:- Account has a 1% slippage margin
- A 99.20 crypto payment but has not yet been verified
- Account holder changes slippage to 0.5% (minimum acceptable becomes $99.50)
- Verification now runs: 99.50, so the invoice is not marked as paid
Tightening slippage on active invoices
Loosening slippage on active invoices
Summary of change impact
Valid slippage values
- Minimum: 0% (triggers fallback to next level in the chain)
- Maximum: 100% (would accept any payment amount, including zero — not recommended)
- Precision: Up to two decimal places (e.g., 1.50%, 0.25%)
Practical recommendations
Interaction with multiple transactions
When a customer pays an invoice across multiple crypto transactions, the slippage margin applies to the total fiat value of all transactions combined, not to each individual transaction. Example (2% slippage on a 98.00):
Even though Transaction 1 alone would not satisfy the invoice, the combined total of 98.00 minimum, so the payment is accepted as paid in full.
Slippage margin in webhook payloads
When price events are broadcast via webhooks (price.created, price.updated, price.deleted), the payload includes the slippage_margin_percent value. This is the raw price-level value, not the effective value after fallback. External systems can use this to understand the configured slippage for each price.
Slippage margin in verification results
When a payment is verified with a slippage margin greater than zero, the verification result includes:slippage_margin_percent— the slippage percentage that was appliedfiat_minimum_acceptable— the calculated minimum amount that would be accepted as paid in full
Related pages
Transaction verification
How TRXN verifies cryptocurrency payments on the blockchain.
Crypto payments overview
End-to-end payment flow from product definition to transaction allocation.