Documentation / API Reference v3.0 Stable

Developer Documentation

Everything you need to integrate with FTL — endpoints, authentication, webhooks, and best practices.

RESTful API JSON
SECTION 01

Introduction

The FTL API provides programmatic access to all core transaction rails — C2B collections, B2C disbursements, B2B settlements, and Bulk SMS. Every endpoint is RESTful, returns JSON, and is designed for reliability at scale.

All API requests are made to https://api.ftl.fobo.com/v3. We support server-to-server and webhook integrations for real-time event notifications.

New to FTL?

Start with the authentication guide to get your API keys, then explore the core endpoints below.

SECTION 02

Authentication

All API requests require an API key passed via the X-API-Key header. Your API key identifies your organization and grants access to your ledger.

HEADER X-API-Key: your_api_key_here
# Example request with authentication
curl -X GET https://api.ftl.fobo.com/v3/balance \
  -H "X-API-Key: sk_live_abc123def456" \
  -H "Content-Type: application/json"
Security Note

Never commit API keys to version control. Use environment variables in production. Rotate keys regularly via the dashboard.

SECTION 03

Core Endpoints

Four primary endpoints power the FTL platform. Each corresponds to a transaction rail.

01

C2B Collections

POST /collections

Initiate a C2B collection from a member. Funds are posted to the member's ledger in real-time.

Parameter Type Required Description
member_id string required Unique member identifier
amount integer required Amount in cents (e.g., 1000 = $10.00)
reference string optional Client-side reference ID
// POST /collections
{
  "member_id": "mbr_12345",
  "amount": 25000,
  "reference": "invoice-2026-08-05"
}
02

B2C Disbursements

POST /disbursements

Send payouts to members via M-Pesa, Airtel Money, or bank transfer. Supports both batch and real-time.

Parameter Type Required Description
member_id string required Recipient member identifier
amount integer required Amount in cents
channel string required mpesa, airtel, or bank
03

B2B Settlements

POST /settlements

Transfer funds between institutional accounts. Fully auditable with automatic reconciliation.

Parameter Type Required Description
from_account string required Source institutional account ID
to_account string required Destination institutional account ID
amount integer required Amount in cents
04

Bulk SMS

POST /sms

Send branded SMS campaigns to your members. Supports templates and personalization.

Parameter Type Required Description
member_ids array required Array of member IDs to receive the message
message string required Message content (max 160 chars per segment)
sender_id string optional Branded sender ID (must be pre-approved)
SECTION 04

Webhooks

FTL can push real-time events to your server via webhooks. Configure endpoints in the dashboard to receive notifications for transaction completions, failures, and SMS delivery statuses.

# Example webhook payload
{
  "event": "collection.completed",
  "data": {
    "transaction_id": "txn_abc123",
    "member_id": "mbr_12345",
    "amount": 25000,
    "status": "success",
    "timestamp": "2026-08-05T14:32:18Z"
  }
}
SECTION 05

Error Handling

All error responses follow a consistent format. Always check the status and code fields for programmatic handling.

# Error response example
{
  "error": {
    "code": "insufficient_balance",
    "message": "Account balance is insufficient for this transaction",
    "status": 402
  }
}
Common Error Codes
invalid_api_key — 401
insufficient_balance — 402
invalid_member — 404
rate_limited — 429
SECTION 06

SDKs & Libraries

Official client libraries to accelerate your integration.

🐍
Python
pip install ftl-sdk
Stable
Node.js
npm install @ftl/sdk
Stable
Java
Coming soon
Beta
SECTION 07

Rate Limits

API rate limits are applied per API key. Default limits are generous — most clients never hit them. If you need higher throughput, contact our team.

Standard
1,000 requests per minute
Enterprise
10,000 requests per minute
Upgrade
SECTION 08

Changelog

v3.0
Initial Release
  • Full REST API for C2B, B2C, B2B, and SMS
  • Webhook support for real-time events
  • Python and Node.js SDKs
August 2026
Last updated: August 2026 Edit this page
Was this helpful?