Every provider becomes another system to maintain.
Each rail ships its own contracts, signatures, retries, and reconciliation model — multiplying the surface area your team has to defend.
Inconsistent signature schemes, retries, and timeout semantics across providers.
Fragmented reconciliation, disputes, and refund flows per rail.
Drift-prone webhooks with no unified delivery or replay guarantees.