Skip to main content

Quick Start Guide

This guide will walk you through making your first FYATU API call. By the end, you’ll have:
  1. Authenticated with the API using JWT
  2. Created a cardholder (Issuing App) or a collection (Collection App)

Prerequisites

1

Create Account

Sign up for a free FYATU account at web.fyatu.com/auth/register
2

Verify Your Identity (KYC)

Submit your identity documents to verify your account
3

Upgrade to Business

Upgrade your account to Business from the dashboard
4

Create an App

Create a Collection App or Issuing App from your Business Console
5

Fund Your Wallet

Deposit USDT to your business wallet (minimum $10 to get started)

Step 1: Get Your Credentials

Log into your Business Console, select your app, and go to Settings > API Keys & Credentials: You’ll need two credentials for authentication:
CredentialDescriptionExample
App IDYour app’s unique identifierDD123FR45446CECES
Secret KeyYour app’s secret keysk_live_xxxxxxxxxxxxx
Keep your secret key safe! It’s only shown once when generated. Never expose it in client-side code or public repositories.

Step 2: Get an Access Token

Exchange your credentials for a JWT access token:
curl -X POST "https://api.fyatu.com/api/v3/auth/token" \
  -H "Content-Type: application/json" \
  -d '{
    "appId": "DD123FR45446CECES",
    "secretKey": "your_secret_key_here",
    "grantType": "client_credentials"
  }'
You should receive a response like:
{
  "success": true,
  "status": 200,
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "tokenType": "Bearer",
    "expiresIn": 86400,
    "expiresAt": "2026-01-16T21:31:39+00:00"
  }
}
Your token is valid for 24 hours. Use it in the Authorization header for all subsequent requests:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Step 3: Make Your First API Call

Use the access token to make authenticated requests. Here are examples for each app type:

Create a Cardholder

curl -X POST "https://api.fyatu.com/api/v3/cardholders" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "externalId": "F45786646",
    "firstName": "John",
    "lastName": "Smith",
    "email": "[email protected]",
    "phone": "+12025551234",
    "dateOfBirth": "1990-05-15",
    "gender": "MALE",
    "address": "123 Main Street, Apt 4B",
    "city": "Newark",
    "state": "Delaware",
    "country": "US",
    "zipCode": "000000"
  }'
Response (201)
{
  "success": true,
  "status": 201,
  "message": "Cardholder created successfully",
  "data": {
    "id": "ch_1a2b3c4d5e6f7890abcdef1234567890",
    "externalId": "F45786646",
    "firstName": "John",
    "lastName": "Smith",
    "email": "[email protected]",
    "phone": "+12025551234",
    "dateOfBirth": "1990-05-15",
    "gender": "MALE",
    "address": {
      "line1": "123 Main Street, Apt 4B",
      "city": "Newark",
      "state": "Delaware",
      "country": "US",
      "zipCode": "000000"
    },
    "status": "ACTIVE",
    "kycStatus": "UNSUBMITTED",
    "createdAt": "2026-01-15T21:31:39+00:00"
  },
  "meta": {
    "requestId": "req_2f7fb4227a1007418773122f",
    "timestamp": "2026-01-15T21:31:39+00:00"
  }
}
Save the cardholder id — you’ll need it to create a card.

Issue a Virtual Card

curl -X POST "https://api.fyatu.com/api/v3/cards" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "cardholderId": "ch_1a2b3c4d5e6f7890abcdef1234567890",
    "amount": 100.00,
    "name": "JOHN SMITH",
    "productId": "MCWORLDUSD"
  }'
Response (201)
{
  "success": true,
  "status": 201,
  "message": "Card created successfully",
  "data": {
    "id": "crd_9x8y7z6w5v4u3t2s",
    "cardholderId": "ch_1a2b3c4d5e6f7890abcdef1234567890",
    "name": "JOHN SMITH",
    "last4": "4829",
    "maskedNumber": "****4829",
    "expiryDate": "03/2029",
    "brand": "MASTERCARD",
    "currency": "USD",
    "status": "ACTIVE",
    "initialBalance": 100.00,
    "createdAt": "2026-01-15T21:35:00+00:00"
  },
  "meta": {
    "requestId": "req_8ce95a4f1b3d67ea2c09458f",
    "timestamp": "2026-01-15T21:35:00+00:00"
  }
}
Card details (full number, CVV) are returned only on the Get Card endpoint. Always handle them securely and never log or expose them.

Step 4: Set Up Webhooks

Configure a webhook URL to receive real-time notifications for all events (payments received, cards funded, eSIMs activated, etc.):
curl -X PUT "https://api.fyatu.com/api/v3/webhooks" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "webhookUrl": "https://yoursite.com/webhooks/fyatu"
  }'
Response (200)
{
  "success": true,
  "status": 200,
  "message": "Webhook URL updated successfully",
  "data": {
    "webhookUrl": "https://yoursite.com/webhooks/fyatu",
    "hasWebhookSecret": true,
    "isConfigured": true,
    "webhookSecret": "whsec_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
    "secretNote": "This is your webhook secret. Store it securely - it will not be shown again."
  },
  "meta": {
    "requestId": "req_abc123xyz789",
    "timestamp": "2026-01-15T10:30:00+00:00"
  }
}
Your webhookSecret is only shown once when first generated. Store it securely — you’ll need it to verify webhook signatures.
See the Webhooks guide for the full list of events and payload structures.

What’s Next?

Authentication Deep Dive

Token refresh, scopes, and best practices

Payment Collections

Accept payments from Fyatu users

Card Issuing

Learn about card lifecycle and operations

Error Handling

Handle API errors gracefully