Skip to content

International Bridge

This flow applies only when service.id is international-bridge (International Bridge API).

Mobile recharge for 50+ countries.

How It Works

  1. Get categories using POST /international-bridge/categories
  2. Get available countries using POST /international-bridge/countries
  3. Get operators for a country using POST /international-bridge/providers
  4. Get amounts for an operator using POST /international-bridge/provider
  5. Check validates the phone number and locks the selected amount
  6. Confirm executes the recharge
  7. Find polls for the final transaction state

Transaction Flow

Steps

1. Get Categories

Fetch product categories to group amounts for display.

View Categories endpoint →

2. Get Countries

Fetch all available countries.

View Countries endpoint →

3. Get Providers

Fetch operators available in a country.

View Providers endpoint →

4. Get Provider (Amounts)

Fetch available amounts for a specific operator.

View Provider endpoint →

5. Check Transaction

Validate the phone number and lock the selected amount.

View Check details →

6. Confirm Transaction

Execute the recharge.

View Confirm details →

7. Find Transaction

Get the final transaction status.

View Find details →

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

AspectInternationalDirect Recharge
Product ID"international-bridge"Specific ID (e.g., et-mc)
Discovery endpointsRequired (countries → providers → provider)Not needed
Check requestamount_id + accountaccount + amount
Confirm requesttransaction_id onlytransaction_id + fields

Paynet API Documentation