Skip to main content
Welcome to FYATU API v3 - a complete reimagining of our API with enhanced security, expanded capabilities, and an improved developer experience.

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

https://api.fyatu.com/api/v3

App-Based Access

V3 uses app-specific credentials. Each app type grants access to different APIs:
App TypeAPIs AvailableUse Cases
Collection AppCollections, PayoutsPayment acceptance, disbursements
Issuing AppeSIM, CardsVirtual cards, eSIM management

Quick Start

1

Get Your Credentials

Login to FYATU Dashboard > Business Console > Select App > Settings > API Keys & Credentials
2

Obtain Access Token

Exchange your appId and secretKey for a JWT token via POST /v3/auth/token
3

Make API Requests

Include the token in the Authorization: Bearer {token} header

Response Format

All V3 endpoints return consistent JSON responses:
{
  "success": true,
  "status": 200,
  "message": "Operation completed successfully",
  "data": { ... },
  "meta": {
    "requestId": "req_xxxxxxxxxxxx",
    "timestamp": "2026-01-05T10:30:00+00:00"
  }
}

Error Codes

CodeHTTPDescription
AUTH_TOKEN_MISSING401No token provided
AUTH_TOKEN_INVALID401Token is malformed or expired
AUTH_SCOPE_DENIED403Token doesn’t have required scope
VALIDATION_ERROR400Request validation failed
RESOURCE_NOT_FOUND404Requested resource not found
INSUFFICIENT_BALANCE402Wallet balance too low
DUPLICATE_REFERENCE409Transaction reference already used
RATE_LIMIT_EXCEEDED429Too many requests
INTERNAL_ERROR500Unexpected server error

v2 vs v3 Comparison

Featurev2v3
AuthenticationBusiness-ID + Bearer TokenJWT with scoped access
Token ExpiryNever expires24 hours (refreshable)
Request TrackingManualBuilt-in requestId
Scoped AccessAll-or-nothingFine-grained scopes
Response Formatstatus: 'success'/'failed'success: true/false

Available Endpoints

Authentication

MethodEndpointDescription
POST/v3/auth/tokenExchange credentials for JWT
POST/v3/auth/refreshRefresh existing token
POST/v3/auth/revokeRevoke a token

Collections

MethodEndpointDescription
POST/v3/collectionsCreate checkout session
GET/v3/collectionsList collections
GET/v3/collections/{id}Get collection details
POST/v3/collections/{id}/refundCreate refund

Refunds

MethodEndpointDescription
GET/v3/refundsList refunds
GET/v3/refunds/reasonsGet available refund reason codes

Payouts

MethodEndpointDescription
GET/v3/accounts/{clientId}Verify recipient account
POST/v3/payoutsCreate payout
GET/v3/payoutsList payouts
GET/v3/payouts/{id}Get payout details

eSIM

MethodEndpointDescription
GET/v3/esim/destinationsList 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/devicesGet eSIM-compatible devices
GET/v3/esim/installationGet installation instructions
POST/v3/esim/purchasePurchase new eSIM(s)
GET/v3/esim/listList purchased eSIMs
GET/v3/esim/{esimId}Get eSIM details
POST/v3/esim/{esimId}/refreshRefresh eSIM usage data
GET/v3/esim/{esimId}/topupsGet available top-up packages
POST/v3/esim/{esimId}/topupTop-up existing eSIM

Need Help?