What’s New
JWT Authentication
Secure, stateless authentication with short-lived tokens and scoped access
Unified Response Format
Consistent response structure with request tracking and timestamps
Collection API
Accept payments from 1M+ Fyatu users directly from their Fyatu wallets
Payout API
Send money instantly to any Fyatu user’s wallet balance
eSIM API
Issue and manage eSIMs for global connectivity with data packages
Card Issuing API
Issue USD virtual Mastercards for online payments worldwide
Base URL
App-Based Access
V3 uses app-specific credentials. Each app type grants access to different APIs:| App Type | APIs Available | Use Cases |
|---|---|---|
| Collection App | Collections, Payouts | Payment acceptance, disbursements |
| Issuing App | eSIM, Cards | Virtual cards, eSIM management |
Quick Start
Get Your Credentials
Login to FYATU Dashboard > Business Console > Select App > Settings > API Keys & Credentials
Response Format
All V3 endpoints return consistent JSON responses:Error Codes
| Code | HTTP | Description |
|---|---|---|
AUTH_TOKEN_MISSING | 401 | No token provided |
AUTH_TOKEN_INVALID | 401 | Token is malformed or expired |
AUTH_SCOPE_DENIED | 403 | Token doesn’t have required scope |
VALIDATION_ERROR | 400 | Request validation failed |
RESOURCE_NOT_FOUND | 404 | Requested resource not found |
INSUFFICIENT_BALANCE | 402 | Wallet balance too low |
DUPLICATE_REFERENCE | 409 | Transaction reference already used |
RATE_LIMIT_EXCEEDED | 429 | Too many requests |
INTERNAL_ERROR | 500 | Unexpected server error |
v2 vs v3 Comparison
| Feature | v2 | v3 |
|---|---|---|
| Authentication | Business-ID + Bearer Token | JWT with scoped access |
| Token Expiry | Never expires | 24 hours (refreshable) |
| Request Tracking | Manual | Built-in requestId |
| Scoped Access | All-or-nothing | Fine-grained scopes |
| Response Format | status: 'success'/'failed' | success: true/false |
Available Endpoints
Authentication
| Method | Endpoint | Description |
|---|---|---|
| POST | /v3/auth/token | Exchange credentials for JWT |
| POST | /v3/auth/refresh | Refresh existing token |
| POST | /v3/auth/revoke | Revoke a token |
Collections
| Method | Endpoint | Description |
|---|---|---|
| POST | /v3/collections | Create checkout session |
| GET | /v3/collections | List collections |
| GET | /v3/collections/{id} | Get collection details |
| POST | /v3/collections/{id}/refund | Create refund |
Refunds
| Method | Endpoint | Description |
|---|---|---|
| GET | /v3/refunds | List refunds |
| GET | /v3/refunds/reasons | Get available refund reason codes |
Payouts
| Method | Endpoint | Description |
|---|---|---|
| GET | /v3/accounts/{clientId} | Verify recipient account |
| POST | /v3/payouts | Create payout |
| GET | /v3/payouts | List payouts |
| GET | /v3/payouts/{id} | Get payout details |
eSIM
| Method | Endpoint | Description |
|---|---|---|
| GET | /v3/esim/destinations | List available destinations (countries/regions) |
| GET | /v3/esim/destinations/{slug} | Get destination details with packages |
| GET | /v3/esim/packages?destination={slug} | List packages for a destination |
| GET | /v3/esim/packages/{packageId} | Get package details |
| GET | /v3/esim/devices | Get eSIM-compatible devices |
| GET | /v3/esim/installation | Get installation instructions |
| POST | /v3/esim/purchase | Purchase new eSIM(s) |
| GET | /v3/esim/list | List purchased eSIMs |
| GET | /v3/esim/{esimId} | Get eSIM details |
| POST | /v3/esim/{esimId}/refresh | Refresh eSIM usage data |
| GET | /v3/esim/{esimId}/topups | Get available top-up packages |
| POST | /v3/esim/{esimId}/topup | Top-up existing eSIM |

