Mobile Recharge Commission App icon

Mobirec retailer wallet, recharge and margin APIs

Mobirec Private Limited · Telecom

Mobile Recharge Commission App — branded Mobirec — is the kirana-counter client from Mobirec Private Limited for India's multi-operator prepaid trade. Neighbourhood retailers sign in with a mobile number and SMS OTP, then sell Jio/Airtel/Vi top-ups by telecom circle, DTH packs, BBPS utility bills and brand vouchers (Amazon, Flipkart, Swiggy and the rest via Hubble) from a home wallet they refill over UPI. A Margin screen lists per-operator commission, reports cover recharge, ledger and add-money history, and PAN KYC plus a mandatory Gmail/PIN-code profile gates the live till. It competes for the same shop counters as Airtel Mitra, JioPOS Lite and PayNearby, but as an independent multi-operator commission app rather than a single-carrier LAPU wallet.

Retailer float sits in balance and ub on the signed-in session, with amSys switching add-money on or off and utilityUse recording whether BBPS debit is allowed. Prepaid checkout carries rcNumber, rcOperator, rcCircle and plan rows with rs, validity and data; the margin board exposes each operator's commissions[].margin and margin_type.

Outstanding BBPS and DTH bills arrive as customerName, dueDate, billDate and refId before checkout writes txnId and optRef. Ledger and recharge reports page those rows with amount, profit and status between from/to dates, while PAN KYC posts pan plus name and returns a rotated token. Reports cards add todaySale/todayProfite versus totalSale, and the referral board tracks qualifiedReferred against next_milestone. Distributors, commission engines and shop-ERP bots use that surface to reconcile float, score operator margins and match BBPS receipts — openData Studio turns it into callable open data.

Screenshots

  • Mobile Recharge Commission App screenshot 1
  • Mobile Recharge Commission App screenshot 2
  • Mobile Recharge Commission App screenshot 3
  • Mobile Recharge Commission App screenshot 4
  • Mobile Recharge Commission App screenshot 5
  • Mobile Recharge Commission App screenshot 6

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • Request retailer login OTP

    POST /v1/session/otp/request osint

    Starts SMS OTP login for a retailer MSISDN, optionally attaching a referral code from the install/deep-link flow.

    Auth: No prior session. Phone number is RSA/AES-wrapped as hashKey; the on-device SMS OTP listener fills the confirm step.

    • hashKey
    • phone
    • ref
    • response
    • message
    POST /v1/session/otp/request HTTP/1.1
    Content-Type: application/json
    
    {
      "hashKey": "<rsa-aes phone+ref>"
    }
    {
      "response": true,
      "message": "OTP sent",
      "data": {
        "phone": "9876543210",
        "ref": "MRC8K2"
      }
    }
  • Verify OTP and issue session token

    POST /v1/session/otp/confirm osint

    Confirms the SMS OTP and returns the session token stored as a token cookie and attached as the token header on later API calls.

    Auth: No prior session. Phone number is RSA/AES-wrapped as hashKey; the on-device SMS OTP listener fills the confirm step.

    • hashKey
    • phone
    • otp
    • token
    • user
    • status
    • name
    • response
    POST /v1/session/otp/confirm HTTP/1.1
    Content-Type: application/json
    
    {
      "hashKey": "<rsa-aes phone+otp>"
    }
    {
      "response": true,
      "token": "<sessionToken>",
      "user": {
        "phone": "9876543210",
        "status": "Verified",
        "name": "Ravi Sharma"
      }
    }
  • Read retailer wallet balance

    POST /v1/wallet/balance openbanking

    Returns the live till wallet shown on the home card: main balance, unutilised/hold bucket, BBPS debit flag and whether add-money is enabled.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • balance
    • ub
    • utilityUse
    • amSys
    • response
    POST /v1/wallet/balance HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {}
    {
      "response": true,
      "data": {
        "balance": "18450.75",
        "ub": "1200.00",
        "utilityUse": true,
        "amSys": 1
      }
    }
  • Fetch signed-in retailer profile

    POST /v1/retailer/profile osint

    Loads the retailer identity the app gates on: Verified status, Gmail, gender and PIN-code address used before the live till opens.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • name
    • email
    • gender
    • phone
    • status
    • pin
    • city
    • dist
    • state
    • address
    • response
    POST /v1/retailer/profile HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {}
    {
      "response": true,
      "data": {
        "name": "Ravi Sharma",
        "email": "[email protected]",
        "gender": "male",
        "phone": "9876543210",
        "status": "Verified",
        "pin": "110001",
        "city": "Connaught Place",
        "dist": "New Delhi",
        "state": "Delhi",
        "address": "Connaught Place, New Delhi, Delhi - 110001"
      }
    }
  • Update retailer profile and complete signup

    POST /v1/retailer/profile/save osint

    Writes the mandatory onboarding profile (Gmail-only email, PIN-resolved city/district/state) and may rotate the session token when status becomes Verified.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • name
    • email
    • gender
    • ref
    • pin
    • city
    • dist
    • state
    • address
    • token
    • user
    • status
    • message
    • response
    POST /v1/retailer/profile/save HTTP/1.1
    token: <sessionToken>
    Content-Type: multipart/form-data
    
    name=Ravi Sharma&[email protected]&gender=male&ref=MRC8K2&pin=110001&city=Connaught Place&dist=New Delhi&state=Delhi&address=Connaught Place, New Delhi, Delhi - 110001
    {
      "response": true,
      "message": "Profile verified successfully!",
      "data": {
        "token": "<sessionToken>",
        "user": {
          "status": "Verified",
          "name": "Ravi Sharma",
          "email": "[email protected]"
        }
      }
    }
  • Resolve PIN code to post offices

    GET /v1/geo/postcode osint

    Resolves a 6-digit PIN into post-office Name/District/State so the mandatory profile form can fill city, dist, state and address before the profile save.

    Auth: Unauthenticated same-origin lookup. Query pin is the 6-digit PIN code; falls back to the public India Post PIN directory when the first lookup misses.

    • pin
    • success
    • data
    • Name
    • District
    • State
    • Pincode
    GET /v1/geo/postcode?pin=110001 HTTP/1.1
    Accept: application/json
    {
      "success": true,
      "data": [
        {
          "Name": "Connaught Place",
          "District": "New Delhi",
          "State": "Delhi",
          "Pincode": "110001"
        }
      ]
    }
  • List operators and commission slabs

    POST /v1/catalog/operators/{serviceId}/{page} opendata

    Returns the per-service operator catalogue the Margin screen renders, including each operator's commission slab as percent or flat margin.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • id
    • name
    • icon
    • operators
    • commissions
    • margin_type
    • margin
    • response
    POST /v1/catalog/operators/prepaid/0 HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {}
    {
      "response": true,
      "data": [
        {
          "id": "jio",
          "name": "Jio",
          "operators": [
            {
              "id": "jio-in",
              "name": "Reliance Jio",
              "icon": "https://cdn.example.com/icons/jio.svg",
              "commissions": [
                {
                  "margin_type": "Percent",
                  "margin": "2.40"
                }
              ]
            }
          ]
        }
      ]
    }
  • Search prepaid recharge plans

    POST /v1/plans/search opendata

    Returns circle-specific prepaid plans (and R-offer rows when roffer=yes) for a mobile number so the retailer can pick rs/validity/data before checkout.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • hashData
    • number
    • circle
    • operator
    • roffer
    • rcNumber
    • rcOperator
    • rcCircle
    • rs
    • desc
    • validity
    • data
    • sms
    • response
    POST /v1/plans/search HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {
      "hashData": "<rsa-aes number+circle+operator+roffer>"
    }
    {
      "response": true,
      "data": {
        "rcNumber": "9876543210",
        "rcOperator": "Jio",
        "rcCircle": "Delhi NCR",
        "plans": [
          {
            "rs": "299",
            "desc": "2GB/day + unlimited calls",
            "validity": "28 days",
            "data": "2 GB/day",
            "sms": "100/day"
          }
        ]
      }
    }
  • Validate selected prepaid plan

    POST /v1/plans/validate opendata

    Confirms the chosen plan amount is valid for that MSISDN, operator and telecom circle before the retailer proceeds to recharge checkout.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • hashData
    • number
    • circle
    • operator
    • amount
    • message
    • response
    POST /v1/plans/validate HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {
      "hashData": "<rsa-aes number+circle+operator+amount>"
    }
    {
      "response": true,
      "message": "Plan verified",
      "data": {
        "number": "9876543210",
        "circle": "Delhi NCR",
        "operator": "Jio",
        "amount": 299
      }
    }
  • Detect prepaid operator and circle

    POST /v1/plans/lookup-operator opendata

    Looks up the MSISDN's home operator and telecom circle so the prepaid drawer can pre-select rcOperator/rcCircle before the plan list loads.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • hashData
    • phone
    • Number
    • Operator
    • Circle
    • response
    POST /v1/plans/lookup-operator HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {
      "hashData": "<rsa-aes phone>"
    }
    {
      "response": true,
      "data": {
        "Number": "9876543210",
        "Operator": "Jio",
        "Circle": "Delhi NCR"
      }
    }
  • List telecom circles for prepaid

    POST /v1/plans/circles opendata

    Returns the prepaid circle-name list the circle drawer matches against the operator-lookup Circle string.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • circleList
    • Circle
    • response
    POST /v1/plans/circles HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {}
    [
      "Delhi NCR",
      "Mumbai",
      "Kolkata",
      "Maharashtra",
      "Tamil Nadu"
    ]
  • Submit prepaid, DTH or BBPS recharge

    POST /v1/orders/place openfinance

    Debits the retailer wallet and fires the prepaid/DTH/utility sale; the same call is reused for redeem and bill-pay confirm.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • hashData
    • number
    • amount
    • operator
    • option1
    • option2
    • option3
    • refId
    • txnId
    • status
    • optRef
    • response
    • message
    POST /v1/orders/place HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {
      "hashData": "<rsa-aes number+amount+operator+refId>"
    }
    {
      "response": true,
      "message": "Recharge accepted",
      "data": {
        "txnId": "MRC24019876",
        "status": "Success",
        "amount": 299,
        "operator": "Jio",
        "number": "9876543210",
        "optRef": "JIO9X21"
      }
    }
  • Fetch BBPS or DTH bill details

    POST /v1/bills/lookup openfinance

    Looks up the outstanding BBPS/DTH bill so the retailer can confirm amount and refId before placing the order.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • hashData
    • number
    • operator
    • amount
    • billDate
    • dueDate
    • customerName
    • refId
    • response
    POST /v1/bills/lookup HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {
      "hashData": "<rsa-aes bill-account payload>"
    }
    {
      "response": true,
      "data": {
        "number": "DL123456789",
        "operator": "BSES Rajdhani",
        "amount": 1860.5,
        "billDate": "2026-09-12",
        "dueDate": "2026-09-28",
        "customerName": "Ravi Sharma",
        "refId": "BBPS9F2A11"
      }
    }
  • Create add-money UPI order

    POST /v1/wallet/topup openbanking

    Opens an add-balance order for the retailer float; the app launches the returned UPI payment_url via the in-app UPI payment sheet.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • hashData
    • amount
    • channel
    • payment_url
    • redirect_url
    • txn_id
    • txnId
    • response
    POST /v1/wallet/topup HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {
      "hashData": "<rsa-aes amount+channel=APP>"
    }
    {
      "response": true,
      "data": {
        "payment_url": "upi://pay?pa=retailer@upi&am=5000.00&tn=MRC24019899",
        "redirect_url": "https://app.example.com/wallet/topup/callback",
        "txn_id": "MRC24019899"
      }
    }
  • List add-money amount presets

    POST /v1/wallet/topup-presets openbanking

    Returns the preset top-up chips on the Add Balance screen so the retailer can pick a float refill amount.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • amount
    • response
    POST /v1/wallet/topup-presets HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {}
    {
      "response": true,
      "data": [
        {
          "amount": 500
        },
        {
          "amount": 1000
        },
        {
          "amount": 2000
        },
        {
          "amount": 5000
        },
        {
          "amount": 10000
        }
      ]
    }
  • Page recharge, ledger and complaint history

    POST /v1/reports/search openfinance

    Pages the Transaction Reports, ledger and complaint lists with operator head/subhead, amount, profit and operator reference, plus ledger open_bal/close_bal on type=Ledger rows.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • hashKey
    • from
    • to
    • page
    • for
    • search
    • total
    • data
    • txnId
    • head
    • subhead
    • status
    • amount
    • profit
    • date
    • optRef
    • icon
    • response
    • open_bal
    • close_bal
    POST /v1/reports/search HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {
      "hashKey": "<rsa-aes from+to+page+for=Recharge>"
    }
    {
      "response": true,
      "total": 86,
      "data": [
        {
          "txnId": "MRC24019876",
          "head": "Jio Prepaid",
          "subhead": "9876543210",
          "status": "Success",
          "amount": 299,
          "profit": 7.18,
          "date": "2026-10-08 18:42",
          "optRef": "JIO9X21",
          "icon": "https://cdn.example.com/icons/jio.svg"
        }
      ]
    }
  • Fetch a single transaction report

    POST /v1/reports/item openfinance

    Loads one recharge or ledger row for the details screen and for complaint follow-up.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • hashKey
    • id
    • for
    • txnId
    • head
    • subhead
    • status
    • amount
    • profit
    • date
    • optRef
    • message
    • response
    POST /v1/reports/item HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {
      "hashKey": "<rsa-aes id+for=Recharge>"
    }
    {
      "response": true,
      "data": {
        "txnId": "MRC24019876",
        "head": "Jio Prepaid",
        "subhead": "9876543210",
        "status": "Success",
        "amount": 299,
        "profit": 7.18,
        "date": "2026-10-08 18:42",
        "optRef": "JIO9X21",
        "message": "Recharge successful"
      }
    }
  • Verify retailer PAN KYC

    POST /v1/kyc/pan osint

    Submits PAN and legal name from the KYC screen; a rotated token is stored when verification succeeds.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • hashData
    • pan
    • name
    • token
    • status
    • message
    • response
    POST /v1/kyc/pan HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {
      "hashData": "<rsa-aes pan+name>"
    }
    {
      "response": true,
      "message": "Your PAN KYC has been successfully completed.",
      "token": "<sessionToken>",
      "data": {
        "pan": "ABCDE1234F",
        "name": "RAVI SHARMA",
        "status": "Verified"
      }
    }
  • List last three recharges for a service

    POST /v1/orders/recent opendata

    Feeds the Recent Recharges strip on the prepaid/DTH/utility number-entry screens so the retailer can one-tap a repeat MSISDN.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • hashKey
    • for
    • number
    • amount
    • operator
    • status
    • response
    POST /v1/orders/recent HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {
      "hashKey": "<rsa-aes for=Prepaid>"
    }
    {
      "response": true,
      "data": [
        {
          "number": "9876543210",
          "amount": 299,
          "operator": "Jio",
          "status": "Success"
        },
        {
          "number": "9123456780",
          "amount": 199,
          "operator": "Airtel",
          "status": "Success"
        }
      ]
    }
  • Refresh retailer session token

    POST /v1/session/refresh osint

    Rotates the signed-in retailer JWT; Verified status sends the shop home, otherwise the verify-user gate.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • token
    • user
    • status
    • phone
    • name
    • response
    POST /v1/session/refresh HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {}
    {
      "response": true,
      "data": {
        "token": "<sessionToken>",
        "user": {
          "phone": "9876543210",
          "status": "Verified",
          "name": "Ravi Sharma"
        }
      }
    }
  • Read today and lifetime till totals

    POST /v1/reports/totals openfinance

    Feeds the Reports home cards: Payments/Sales/Profit for today versus lifetime (wire names keep the Profite spelling).

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • todayAddMoney
    • todaySale
    • todayProfite
    • totalAddMoney
    • totalSale
    • totalProfite
    • response
    POST /v1/reports/totals HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {}
    {
      "response": true,
      "data": {
        "todayAddMoney": 5000,
        "todaySale": 12840,
        "todayProfite": 186.5,
        "totalAddMoney": 185000,
        "totalSale": 942310,
        "totalProfite": 14280.75
      }
    }
  • Read referral milestone progress

    POST /v1/referrals/progress opendata

    Drives the Refer screen: how many friends have done the qualifying recharge, remaining slots to the wallet bonus, and the bonus amount.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • qualifiedReferred
    • totalReferred
    • next_milestone
    • remaining_referrals
    • qualifiedBonuses
    • new_bounded_amount
    • bonus_credited
    • response
    POST /v1/referrals/progress HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {}
    {
      "response": true,
      "data": {
        "qualifiedReferred": 11,
        "totalReferred": 14,
        "next_milestone": 15,
        "remaining_referrals": 4,
        "qualifiedBonuses": 0,
        "new_bounded_amount": 349,
        "bonus_credited": 0
      }
    }
  • List home service catalogue

    POST /v1/catalog/services opendata

    Returns the signed-in home catalogue; the UI splits rows whose type is Mobile or DTH from other bill-pay services, then feeds each id into the operator-commission list.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • id
    • name
    • type
    • icon
    • response
    POST /v1/catalog/services HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {}
    {
      "response": true,
      "data": [
        {
          "id": "prepaid",
          "name": "Mobile Recharge",
          "type": "Mobile",
          "icon": "https://cdn.example.com/icons/prepaid.svg"
        },
        {
          "id": "dth",
          "name": "DTH",
          "type": "DTH",
          "icon": "https://cdn.example.com/icons/dth.svg"
        }
      ]
    }
  • Fetch app metadata and support contacts

    GET /v1/config/app/{changes} opendata

    Versioned config blob: Changes invalidates the cached config, AppUrl drives in-app update, and contactDetails.WhatsApp is the support chat deep link.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • Changes
    • AppUrl
    • appUrl
    • playStoreUrl
    • contactDetails
    • WhatsApp
    • Refer
    • Switch
    • Amount
    GET /v1/config/app/0 HTTP/1.1
    token: <sessionToken>
    {
      "Changes": "12",
      "AppUrl": "https://play.google.com/store/apps/details?id=com.FreeRechargeApp",
      "contactDetails": {
        "WhatsApp": "919876543210"
      },
      "Refer": {
        "Switch": true,
        "Amount": 349
      }
    }
  • Lookup DTH subscriber before checkout

    POST /v1/dth/subscriber opendata

    Resolves a DTH subscriber on the info-submit screen before the retailer posts the recharge order with option1-3.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • hashData
    • number
    • operator
    • operatorName
    • customerName
    • response
    POST /v1/dth/subscriber HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {
      "hashData": "<rsa-aes number+operator>"
    }
    {
      "response": true,
      "data": {
        "number": "3012345678",
        "operator": "Tata Play",
        "operatorName": "Tata Play",
        "customerName": "Ravi Sharma"
      }
    }
  • File a transaction complaint

    POST /v1/reports/complaint openfinance

    Opens a complaint against a recharge or add-money txnId from the details sheet (pending, wallet not credited, BBPS not adjusted).

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • hashKey
    • id
    • for
    • message
    • status
    • response
    POST /v1/reports/complaint HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {
      "hashKey": "<rsa-aes id+for=Recharge+message>"
    }
    {
      "response": true,
      "message": "Complaint registered",
      "data": {
        "id": "MRC24019876",
        "for": "Recharge",
        "status": "Open"
      }
    }
  • Submit recharge with simultaneous add-money

    POST /v1/orders/place-with-topup openfinance

    Fires the same prepaid/DTH/redeem/BBPS sale as the standard order call while topping up float in one step, used when the till cannot cover the sale from balance alone.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • hashData
    • number
    • amount
    • operator
    • option1
    • option2
    • option3
    • txnId
    • status
    • payment_url
    • response
    • message
    POST /v1/orders/place-with-topup HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {
      "hashData": "<rsa-aes number+amount+operator>"
    }
    {
      "response": true,
      "message": "Recharge accepted",
      "data": {
        "txnId": "MRC24019901",
        "status": "Pending",
        "amount": 299,
        "operator": "Jio",
        "number": "9876543210",
        "payment_url": "upi://pay?pa=retailer@upi&am=299.00"
      }
    }
  • Issue Hubble voucher mock token

    POST /v1/vouchers/session-token opendata

    Mints the Hubble gift-card SDK token the voucher screen needs before it can open an iframe to voucher checkout.

    Auth: Session token header issued after SMS OTP confirm (and rotated by the session-refresh call). Sent as the token request header.

    • mockToken
    • response
    POST /v1/vouchers/session-token HTTP/1.1
    Content-Type: application/json
    token: <sessionToken>
    
    {}
    {
      "response": true,
      "data": {
        "mockToken": "<hubbleMockToken>"
      }
    }
  • Create Hubble voucher checkout session

    GET /v1/vouchers/checkout opendata

    Turns a brand title plus Hubble mockToken into the iframe src (url/baseUrl) for Amazon/Flipkart/OTT voucher checkout.

    Auth: Query token is the mockToken from the voucher session-token call. Same-origin BFF; the iframe then loads url on the Hubble checkout host.

    • title
    • token
    • url
    • baseUrl
    GET /v1/vouchers/checkout?title=amazon&token=<hubbleMockToken> HTTP/1.1
    {
      "url": "https://vouchers.example.com/sdk?session=hbl_sess_91",
      "baseUrl": "https://vouchers.example.com/sdk?session=hbl_sess_91"
    }

Data categories

  • balances
  • transactions
  • recharges
  • commissions
  • kyc
  • referrals

Where teams use this data

  • Distributor float reconciliation

    Nightly jobs pull balance and ub, then match add-money txn_id rows and ledger credit/debit status so a super-distributor can see which kirana wallets ran dry before the next UPI refill.

  • Operator margin engine

    A commission engine reads commissions[].margin and margin_type per operator from the service-operator catalogue and compares them with profit on each recharge history row to flag underpaying circles.

  • BBPS receipt matching

    Accounts bots join fetch-bill refId/customerName/dueDate with later order txnId and optRef so utility collections reconcile against the retailer's wallet debit.

  • Shop onboarding gate

    Compliance queues watch PAN verify (pan, name, status) plus profile completeness (email, pin, city, dist, state) before a new counter is allowed to debit float.

Frequently asked questions

What wallet fields does Mobirec expose for a retailer?

The signed-in balance call returns balance (live till), ub (hold/unutilised bucket), utilityUse (whether BBPS debit is allowed) and amSys (whether UPI add-money is enabled). Add-money then returns payment_url, redirect_url and txn_id for the UPI intent.

How are prepaid plans and commissions represented?

Plans are circle-specific rows with rs, desc, validity, data and sms, validated for a number/operator/circle/amount tuple. The margin screen lists operators[].commissions[] with margin_type (Percent or flat) and margin.

How are BBPS bills joined to a wallet debit?

Bill lookup returns number, operator, amount, billDate, dueDate, customerName and refId. The later order row carries txnId, optRef, amount and status, so accounts jobs can match the receipt against the till debit.

Which history rows can be paged?

The history call pages Recharge, ledger and complaint lists with txnId, head, subhead, amount, profit, status, optRef and date. A details call loads one row by txnId; complaints post an extra message against that id.

Apps similar to Mobile Recharge Commission App

  • Mitra — Mitra is Bharti Airtel's retailer app for managing an Airtel LAPU wallet, viewing circle tariff plans, processing customer top-ups and tracking live and monthly recharge commissions.
  • JioPOS Lite — JioPOS Lite is Reliance Jio's partner app that lets individuals onboard as Jio partners, load a wallet and recharge Jio customers, with an earnings dashboard for daily commission.
  • PayNearby — PayNearby is a kirana-retailer platform whose shops collect phone and DTH recharges, utility bills and EMI cash, alongside branchless banking such as cash-in, cash-out and transfers.
  • Spice Money — Spice Money is a DiGiSPICE rural-finance network whose Adhikari agents offer bill payments plus mobile, OTT and FASTag recharge from neighbourhood shops, along with money transfer and mini-ATM cash services.
  • Paytm — Paytm is One97's Indian payments app whose Play listing covers UPI money transfer, bill payments and prepaid recharge, so kirana counters already taking Paytm also sell top-ups from the same phone.
  • PhonePe — PhonePe is a Bengaluru UPI payments app that also lets users recharge mobile and DTH connections and pay utility bills from the same wallet used for in-store scans.
  • Eko — Eko Bharat Ventures runs a recharge portal and commission-based retailer tools so neighbourhood shops can sell recharges, pay utility bills and offer Aadhaar cash-out and money transfer.

Topics

  • mobirec api
  • retailer recharge wallet
  • prepaid commission margin
  • bbps bill fetch
  • upi add money
  • pan kyc retailer

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote