API Documentation

Everything you need to integrate JaallePay into your application.

Authentication

All API requests require a Bearer token in the Authorization header.

Authorization: Bearer sk_live_your_api_key

Base URL: https://jaallepay.com/api/v1

Quick Start

curl -X POST https://jaallepay.com/api/v1/charge \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 25.00,
    "currency": "USD",
    "phone": "+25261XXXXXXX",
    "network": "evc_plus"
  }'

Endpoints

POST/api/v1/charge

Create a Charge

Charge a customer via their mobile money account

Request Body

{
  "amount": 25.00,
  "currency": "USD",
  "phone": "+25261XXXXXXX",
  "network": "evc_plus",
  "description": "Order #1234",
  "webhook_url": "https://yoursite.com/webhook"
}

Response

{
  "id": "ch_abc123",
  "status": "pending",
  "amount": 25.00,
  "currency": "USD",
  "network": "evc_plus",
  "created_at": "2026-03-01T12:00:00Z"
}
POST/api/v1/refund

Create a Refund

Refund a completed charge

Request Body

{
  "charge_id": "ch_abc123",
  "amount": 25.00,
  "reason": "Customer request"
}

Response

{
  "id": "rf_xyz789",
  "charge_id": "ch_abc123",
  "amount": 25.00,
  "status": "completed"
}
POST/api/v1/payment-link

Create Payment Link

Generate a shareable payment link

Request Body

{
  "amount": 50.00,
  "currency": "USD",
  "description": "Invoice #567",
  "expires_in": 86400
}

Response

{
  "id": "pl_def456",
  "url": "https://jaallepay.com/pay/pl_def456",
  "amount": 50.00,
  "expires_at": "2026-03-02T12:00:00Z"
}
GET/api/v1/transactions

List Transactions

Retrieve paginated transaction history

Response

{
  "data": [
    {
      "id": "tx_001",
      "type": "charge",
      "amount": 25.00,
      "status": "completed",
      "created_at": "2026-03-01T12:00:00Z"
    }
  ],
  "total": 142,
  "page": 1
}
GET/api/v1/balance

Get Balance

Retrieve your merchant account balance

Response

{
  "available": 1250.00,
  "pending": 75.00,
  "currency": "USD"
}

Webhooks

JaallePay sends webhook events to your server when payment status changes.

{
  "event": "charge.completed",
  "data": {
    "id": "ch_abc123",
    "amount": 25.00,
    "status": "completed",
    "network": "evc_plus",
    "completed_at": "2026-03-01T12:01:30Z"
  },
  "signature": "hmac_sha256_xxx"
}