The challenge
Adding ApeX Omni meant a new L2 signing flow alongside the existing Bybit setup.
What we built
- Laravel account and webhook order services
- Dedicated Node.js signing service under PM2
- Testnet setup and request-level debugging
The full story
The situation
The trading bot manager already worked with Bybit. ApeX Omni uses a different authentication model, including L2 key signing, that PHP couldn’t handle cleanly on its own.
What we built
We kept the business logic in Laravel (account requests and the webhook order flow) and moved signing into a dedicated Node.js service with a /sign-order endpoint, run under PM2. Each side does what it’s best at.
Engineering details
Signing needs the exact data in the exact format. One bug came from passing a fee like 0.0002 straight into a BigInt, so number formatting became part of the job. Request logs also showed one failure was a CDN/firewall 403 page, not a signing error, which kept the debugging on the right track.
Where it stands
The Laravel-to-Node structure, account service and webhook order path are in place. Live trading performance was not part of the documented scope.