Introducing API v2 (Next)
We are launching API v2 (Next), a full rewrite of our backend focused on reliability, efficiency, and scale. If you are already on v1, nothing changes for you today. v1 stays live and supported. v2 is the path forward for new features and long-term growth.
Why we built v1
v1 started as an experimental API. It helped us validate the product, ship quickly, and learn from real production usage. It solved the first round of customer needs and gave us the data we needed to design a better foundation.
What went wrong with v1 in production
v1 was built in Python, which made iteration fast. But in production we hit serious issues:
- Type problems that were hard to catch early
- Servers breaking under load and during edge cases
- Higher memory usage than we could afford at scale
Those pain points did not show up in early experiments, but they became obvious as usage grew.
What is new in v2 (Next)
v2 is a full backend rewrite in Go. That decision was not about hype; it was about stability and performance.
- Go is strict and predictable, which helps us avoid type-related bugs
- It is efficient in memory and CPU, so we can handle more requests
- The build and deploy cycle is faster and more reliable
The end result: better uptime, better latency, and a foundation we can trust as we add features.
What changed in the API surface (from the OpenAPI specs)
Looking at openapiv1.json and openapiv2.json, the shift is more than a version bump. It is a cleaner, more predictable API.
- New base path and structure: v1 uses
/api/v1with paths like/transaction/*; v2 is fully namespaced under/api/v2/*with standard resource routes. - Clear resource modeling: transactions, payouts, and accounts are first-class in v2.
- Path params over query params: v2 uses
/transactions/{order_id}instead ofget-one-transaction?order_id=.... - Payouts replace cashout: v1 had
/cashout/waveand/cashout/orange-money; v2 has/payoutsand/payouts/{order_id}. - Accounts are richer: v2 adds
/accounts,/accounts/{id}, and/accounts/statsfor visibility and reporting. - Better consistency: v2 standardizes responses, includes explicit error schemas, and documents pagination for list endpoints.
- Higher rate limits: v2 documents 100 requests per 60 seconds vs the 30 request limit described in v1.
What stays the same for existing users
If you are on v1, you can keep using it. There are no breaking changes for existing integrations today. v2 is available for teams who want the improved performance and the new platform capabilities as they roll out.
Who should move to v2
If you are starting a new integration, v2 is the best choice. If you are already on v1 and happy, you can stay put for now. When you are ready, we will provide a clear migration path.
Thanks for building with us. We are excited to keep leveling up the platform with you.
