Knowledge Base · Payments & x402
A rejected payment integration, and the two paths that actually worked
The symptom
The card on-ramp was built end to end and returned a not-found error from the provider for weeks. The blocker was not technical: the application had been declined because the business — an advertising marketplace — did not fit the provider's requirements at that time.
What was actually wrong
The dependency was a compliance decision outside our control, yet the integration had become the assumed revenue path. Every day spent debugging it was a day not spent on paths that only require a wallet.
The fix
The unfinished integration was left in place but clearly marked inactive, and revenue moved to two self-hosted routes: pay-per-use over the x402 protocol, and direct stablecoin payments for advertising placements. Both verify settlement by reading the chain, so neither can be switched off by a third party. Reapplying becomes an option later, after formal business verification.
What we took away
Treat a payment provider's approval as a probability, not a plan. Build the route that needs no one's permission first, and keep the third-party one as an option you can switch on.