> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fyatu.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Account Balance

> Retrieve the operational balance of your account — the working reserve for card issuance, JIT funding, and invoice payments. GET /balance. Requires accounts:read scope.

## Overview

Returns the **operational balance** of your CaaS account — the working reserve that funds all card-related operations:

* **Card issuance** — every virtual card issued draws from this balance
* **Card funding** — loading funds onto a card debits this balance
* **JIT funding** — real-time authorisation funding is drawn at the moment of transaction
* **Invoice payments** — monthly platform fees are debited here when due

Deposit funds to this balance via your account's crypto deposit address. The balance is always denominated in **USD**.

**Sandbox:** The first call automatically seeds **\$10,000** in test funds. Subsequent calls return the live sandbox balance as it changes with card loads and transactions.

## Example

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.fyatu.com/api/v3.20/balance \
    -H "Authorization: Bearer $FYATU_API_KEY"
  ```

  ```javascript Node.js theme={null}
  const resp = await fetch('https://api.fyatu.com/api/v3.20/balance', {
    headers: { 'Authorization': `Bearer ${process.env.FYATU_API_KEY}` }
  });
  const { data } = await resp.json();
  console.log(`Balance: ${data.balance} ${data.currency}`);
  if (data.isLow) console.warn('Low balance — top up to avoid disruptions');
  ```

  ```python Python theme={null}
  import os, requests

  resp = requests.get(
      'https://api.fyatu.com/api/v3.20/balance',
      headers={'Authorization': f'Bearer {os.environ["FYATU_API_KEY"]}'}
  )
  data = resp.json()['data']
  print(f"Balance: {data['balance']} {data['currency']}")
  if data['isLow']:
      print('Warning: balance is below your alert threshold')
  ```
</CodeGroup>

## Success Response (200)

```json theme={null}
{
  "success": true,
  "status": 200,
  "message": "Balance retrieved",
  "data": {
    "balance": 10000.00,
    "currency": "USD",
    "isLow": false,
    "lowBalanceThreshold": 100.00,
    "updatedAt": "2026-05-24T10:00:00Z"
  },
  "meta": {
    "requestId": "req_a1b2c3d4e5f6a7b8c9d0e1f2",
    "platform": "Fyatu CaaS",
    "timestamp": "2026-05-24T10:00:00Z"
  }
}
```

## Field Reference

| Field                 | Type    | Description                                                                                                           |
| --------------------- | ------- | --------------------------------------------------------------------------------------------------------------------- |
| `balance`             | number  | Operational balance in USD — available for card issuance, JIT funding, and invoice payments                           |
| `currency`            | string  | Always `USD`                                                                                                          |
| `isLow`               | boolean | `true` when `balance` is at or below `lowBalanceThreshold`. Always `false` when the threshold is `0` (not configured) |
| `lowBalanceThreshold` | number  | Alert threshold in USD. `0` means no threshold is configured. Configure via the portal Settings page                  |
| `updatedAt`           | string  | ISO 8601 timestamp of the last balance change. Returns the current time when no balance record exists yet             |

<Note>
  Subscribe to the `program.balance.low` webhook event to receive real-time alerts when your balance falls below the configured threshold.
</Note>

## Error Codes

| Code                 | HTTP | Cause                             |
| -------------------- | ---- | --------------------------------- |
| `AUTH_TOKEN_MISSING` | 401  | No API key provided               |
| `AUTH_TOKEN_INVALID` | 401  | API key not recognised or revoked |
| `INSUFFICIENT_SCOPE` | 403  | Key lacks `accounts:read` scope   |


## OpenAPI

````yaml v3.20/openapi.json GET /balance
openapi: 3.1.0
info:
  title: FYATU CaaS API v3.20
  description: >-
    FYATU Cards-as-a-Service API â€” API key authentication, Cardholder
    lifecycle, Card issuance, Transactions, Webhooks, and Programs.
  version: 3.20.0
  contact:
    name: FYATU Support
    url: https://fyatu.com
    email: support@fyatu.com
servers:
  - url: https://api.fyatu.com/api/v3.20
    description: >-
      FYATU CaaS API â€” the environment (LIVE or SANDBOX) is determined by the
      API key, not the URL
security:
  - BearerAuth: []
tags:
  - name: Meta
    description: Liveness, account info, and supported event types
  - name: Account
    description: Account-level balance and funding status
  - name: Programs
    description: Read card program configuration
  - name: Cardholders
    description: Create and manage cardholder profiles
  - name: Cards
    description: Issue, fund, freeze, and terminate virtual cards
  - name: Transactions
    description: Read-only card transaction history
  - name: Webhooks
    description: Manage webhook endpoints for real-time event delivery
  - name: Products
    description: Read card product configurations
paths:
  /balance:
    get:
      tags:
        - Account
      summary: Get account balance
      description: >-
        Returns the operational balance of your account â€” the working reserve
        used for all CaaS operations including card issuance, JIT funding, and
        invoice payments. Always returns `200`. Returns `balance: 0` when no
        program is configured yet. For SANDBOX keys, $10,000 in test funds is
        automatically seeded on the first call.
      operationId: getAccountBalance
      responses:
        '200':
          description: Balance retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  status:
                    type: integer
                    example: 200
                  message:
                    type: string
                    example: Balance retrieved
                  data:
                    type: object
                    properties:
                      balance:
                        type: number
                        format: float
                        description: >-
                          Operational balance in USD â€” the working reserve
                          available for card issuance, JIT funding, and invoice
                          payments.
                        example: 10000
                      currency:
                        type: string
                        description: Always USD.
                        example: USD
                      isLow:
                        type: boolean
                        description: >-
                          True when balance is at or below the configured
                          low-balance threshold. Always false when the threshold
                          is 0 (not set).
                        example: false
                      lowBalanceThreshold:
                        type: number
                        format: float
                        description: >-
                          Alert threshold in USD. 0 means no threshold is
                          configured. Set via the portal Settings page.
                        example: 100
                      updatedAt:
                        type: string
                        format: date-time
                        description: >-
                          When the balance was last updated. Returns the current
                          timestamp when no balance record exists yet.
                        example: '2026-05-24T10:00:00Z'
                  meta:
                    $ref: '#/components/schemas/Meta'
              example:
                success: true
                status: 200
                message: Balance retrieved
                data:
                  balance: 10000
                  currency: USD
                  isLow: false
                  lowBalanceThreshold: 0
                  updatedAt: '2026-05-24T10:00:00Z'
                meta:
                  requestId: req_a1b2c3d4e5f6a7b8c9d0e1f2
                  platform: Fyatu CaaS
                  timestamp: '2026-05-24T10:00:00Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    Meta:
      type: object
      properties:
        requestId:
          type: string
          example: req_a1b2c3d4e5f6a7b8c9d0e1f2
        platform:
          type: string
          example: Fyatu CaaS
        timestamp:
          type: string
          format: date-time
          example: '2026-05-22T15:00:00Z'
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        status:
          type: integer
          example: 422
        message:
          type: string
          example: Human readable message
        error:
          $ref: '#/components/schemas/ErrorBody'
        meta:
          $ref: '#/components/schemas/Meta'
    ErrorBody:
      type: object
      properties:
        code:
          type: string
          example: VALIDATION_ERROR
        detail:
          type: string
          example: dateOfBirth must be in YYYY-MM-DD format
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            missing:
              summary: API key missing
              value:
                success: false
                status: 401
                message: API key is required
                error:
                  code: AUTH_TOKEN_MISSING
                  detail: API key is required
                meta:
                  requestId: req_a1b2c3d4e5f6a7b8c9d0e1f2
                  platform: Fyatu CaaS
                  timestamp: '2026-05-22T15:00:00Z'
            invalid:
              summary: API key invalid
              value:
                success: false
                status: 401
                message: Invalid API key
                error:
                  code: AUTH_TOKEN_INVALID
                  detail: Invalid API key
                meta:
                  requestId: req_a1b2c3d4e5f6a7b8c9d0e1f2
                  platform: Fyatu CaaS
                  timestamp: '2026-05-22T15:00:00Z'
    Forbidden:
      description: Scope denied or business suspended
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            success: false
            status: 403
            message: Scope denied
            error:
              code: INSUFFICIENT_SCOPE
              detail: This endpoint requires the cards:write scope
            meta:
              requestId: req_a1b2c3d4e5f6a7b8c9d0e1f2
              platform: Fyatu CaaS
              timestamp: '2026-05-22T15:00:00Z'
    RateLimitExceeded:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            success: false
            status: 429
            message: Rate limit exceeded
            error:
              code: RATE_LIMIT_EXCEEDED
              detail: Too many requests
            meta:
              requestId: req_a1b2c3d4e5f6a7b8c9d0e1f2
              platform: Fyatu CaaS
              timestamp: '2026-05-22T15:00:00Z'
    InternalError:
      description: Unexpected server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            success: false
            status: 500
            message: Internal error
            error:
              code: INTERNAL_ERROR
              detail: An unexpected error occurred
            meta:
              requestId: req_a1b2c3d4e5f6a7b8c9d0e1f2
              platform: Fyatu CaaS
              timestamp: '2026-05-22T15:00:00Z'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key from the FYATU CaaS portal. Pass as `Authorization: Bearer
        <key>`.

````