Appearance
International Bridge
This flow applies only when service.id is international-bridge (International Bridge API).
Mobile recharge for 50+ countries.
How It Works
- Get categories using
POST /international-bridge/categories - Get available countries using
POST /international-bridge/countries - Get operators for a country using
POST /international-bridge/providers - Get amounts for an operator using
POST /international-bridge/provider - Check validates the phone number and locks the selected amount
- Confirm executes the recharge
- Find polls for the final transaction state
Transaction Flow
Steps
1. Get Categories
Fetch product categories to group amounts for display.
2. Get Countries
Fetch all available countries.
3. Get Providers
Fetch operators available in a country.
4. Get Provider (Amounts)
Fetch available amounts for a specific operator.
5. Check Transaction
Validate the phone number and lock the selected amount.
6. Confirm Transaction
Execute the recharge.
7. Find Transaction
Get the final transaction status.
Example Flow
javascript
// 1. Get categories (optional, for UI grouping)
const categories = await api.post('/international-bridge/categories', { auth });
// Returns: { categories: [{ id: "mobile-airtime", parent_id: "mobile", name: "Airtime / Calls" }, ...] }
// 2. Get countries
const countries = await api.post('/international-bridge/countries', { auth });
// Returns: { countries: [{ id: "IND", name: "India", currency: "INR", ... }, ...] }
// 3. Get operators for India
const operators = await api.post('/international-bridge/providers', {
auth,
country_id: 'IND'
});
// Returns: { country: {...}, providers: [{ id: 56, name: "Airtel" }, ...] }
// 4. Get amounts for Airtel
const amounts = await api.post('/international-bridge/provider', {
auth,
provider_id: 56
});
// Returns: { amounts: [{ id: "16a6...", category_id: "mobile-airtime", amount: "10", currency: "INR", ... }, ...] }
// 5. Check transaction (product: "international-bridge")
const check = await api.post('/transaction/check', {
auth,
product: 'international-bridge',
fields: {
amount_id: '16a6e7cc7319a2f36c110d6a3af98aff',
account: '911234567890'
}
});
// Returns: { transaction: { id: "69d-...", state: -1, amount: "10", amount_currency: "INR", ... } }
// 6. Confirm
const confirm = await api.post('/transaction/confirm', {
auth,
transaction_id: check.transaction.id
});
// Returns: { transaction: { state: 1, ... }, receipt: {...} }
// 7. Poll for result if state is not final
const result = await api.post('/transaction/find', {
auth,
transaction_id: check.transaction.id
});Key Differences
| Aspect | International | Direct Recharge |
|---|---|---|
| Product ID | "international-bridge" | Specific ID (e.g., et-mc) |
| Discovery endpoints | Required (countries → providers → provider) | Not needed |
| Check request | amount_id + account | account + amount |
| Confirm request | transaction_id only | transaction_id + fields |