Skip to main content

Introduction

Integrate mobile top-up functionality for Algerian operators (Mobilis, Djezzy, Ooredoo, Pixx) in 4 simple steps. This overview explains the integration workflow—detailed implementation with code examples in Node.js, Python, PHP, and cURL are in the step-by-step guides below.

How It Works

4-Step Integration Process

1

Load Plans

Get available top-up plans with pricing and cache them locally.See Step 1: Loading Plans
2

Validate Input

Verify phone numbers (10 digits, correct operator prefix) and amounts before sending.See Step 2: Validation
3

Send Top-Up

Submit the top-up request with a unique reference for tracking.See Step 3: Sending Top-Ups
4

Poll Status

Check the order status every 5-10 seconds until it’s complete (FULFILLED, REFUNDED, or UNKNOWN_ERROR).See Step 4: Status Polling

What You Need to Know

Plan Types

The API supports 3 types of plans:
  • Dynamic Plans: Flexible amounts (e.g., 50-5000 DA for Djezzy Prepaid)
  • Fixed Plans: Specific amounts (e.g., Pixx 500 DA)
  • GetMenu Plans: Fetch personalized offers for a phone number
Learn more in Step 1

Order Status

Orders progress through these states:
  • PENDING / HANDLING → Keep polling
  • FULFILLED → Success! ✅
  • REFUNDED → Failed, refund issued ❌
  • UNKNOWN_ERRORWait 24h before refunding ⚠️
Detailed status handling in Step 4

Phone Format

Phone numbers must be 10 digits: 0[567][0-9]{8}
  • Mobilis: 06...
  • Djezzy: 07...
  • Ooredoo: 05...
Validation code in Step 2

Pricing

The API returns wholesale prices. Apply your markup before showing to customers. Example: cost: 0.98 for 1000 DA → You pay 980 DA → Sell at 1029 DA (5% markup) → Profit: 49 DA Pricing strategies in Step 1

Key Points

Generate unique ref for each request to prevent duplicates and enable tracking.Implementation in Step 3
Plans rarely change. Cache them to reduce API calls and improve speed.Caching strategy in Step 1
Never refund immediately! Wait up to 24 hours for status to resolve.Error handling in Step 4
Display the refund_message field (in Arabic) to customers—it explains what went wrong.Message handling in Step 4

API Reference

For complete endpoint specifications:

Testing

Use sandbox mode to test without real money. Test with these special numbers:
  • Normal numbers → Success flow
  • 0600000001 → Refund scenario
  • 0600000002 → Suggested offers
  • 0600000003 → Unknown error
Enable sandbox in dashboard settings.

Start Integrating

Begin with Step 1: Loading Plans

Get started by loading and caching mobile plans with code examples

Additional Resources