Asiacell data API: balances, usage and top-up
Asiacell is the official self-care app of ASIACELL COMMUNICATIONS PJSC, the Iraqi mobile operator, built so prepaid and postpaid subscribers can run their line from the phone. Sign-in uses the mobile number plus a one-time SMS code, with a captcha challenge when required, and the home screen opens on the current plan name, balance and remaining-data tiles, and the Shukran loyalty counter with its expiry date. The recharge screen shows the main balance in Iraqi dinars with a validity note and tops up by scratch card or online wallets such as FastPay and AsiaPay; postpaid customers see the outstanding bill amount and due date and pay it in the app; and My Pocket lists itemized voice, data and SMS usage once access is confirmed with an SMS code. Subscribers can also gift airtime to another Asiacell number (confirmed by SMS code), browse add-on data and voice packs filtered by type and open each pack for its price, validity and benefits before subscribing, track active offers with what is left and when they expire, redeem Shukran points, and keep a profile with their name, email and photo, with the app's copy available in English, Arabic and Kurdish. It serves mobile subscribers across Iraq, where Asiacell competes with Zain Iraq's subscriber app and Korek Telecom's MyKorek, the Erbil-based operator focused on the Kurdistan Region.
Shukran loyalty points, My Pocket call-detail rows and a main balance kept in Iraqi dinars are the account objects behind every signed-in Asiacell line. Each session resolves to a numeric userId with the MSISDN as username, the subscriber's fullName and a userType flag that separates PREPAID from postpaid lines, and the profile adds firstName, lastName, thirdName, email and photo. The money side holds the prepaid mainBalance with its currency and validity note, the outstanding postpaid bill as an amount plus dueDate, and the recharge rails offered at top-up time: a voucherPayment scratch-card option next to onlinePayments wallets such as FastPay and AsiaPay, each carrying an id and a selected flag.
Usage arrives as paged My Pocket call-detail rows, each with an amount, a unit (IQD for voice charges, MB for data sessions), a service title, a counterparty subTitle and a description holding call duration and timestamp, plus total and page counters. The home payload contributes the current plan name and balance/data points tiles; airtime gifts record the receiverMsisdn, amount and a confirmation PID; the add-on catalog lists packs with price, validity, benefits and an expiryTitle, and active offers report their remaining balance; the Shukran loyaltyPoint block tracks remain against total with an expiration date and a registered flag.
Those streams feed nightly prepaid reconciliation jobs that match balance tiles and call-detail rows against an internal usage ledger; payments-ops consoles that read the bill amount and due date and quote the right FastPay or AsiaPay rail before the subscriber confirms; family-plan tooling that logs each airtime gift's receiver, amount and outcome after its SMS confirmation so household transfers stay traceable; and retail dashboards where store staff show live pack balances and redeemable Shukran points next to the line. openData Studio turns this Asiacell subscriber data into callable open data, so those teams integrate it directly instead of reading it screen by screen.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Start MSISDN login and request OTP
POST
/v1/auth/startosintStarts Asiacell self-care login for a subscriber MSISDN, optionally challenges with a captcha, and returns a nextUrl whose PID is required to confirm the SMS OTP.
Auth: Unauthenticated. Body is the subscriber MSISDN (username) plus an optional captchaCode from a captcha-issuing call. On success the nextUrl carries the PID used by the OTP-confirm step.
- username
- captchaCode
- requireCaptcha
- success
- message
- nextUrl
- PID
POST /v1/auth/start HTTP/1.1 Content-Type: application/json { "username": "7701234567", "captchaCode": "" }{ "requireCaptcha": false, "success": true, "message": "OTP sent", "nextUrl": "asiacell://otp?PID=pid-8f21a4" }Confirm SMS OTP and issue session
POST
/v1/auth/verifyosintConfirms the SMS OTP for the login PID and returns the accessToken / refreshToken pair, subscriber userId, MSISDN, fullName and userType stored in the app session.
Auth: Unauthenticated. Body carries PID from the login nextUrl, the SMS passcode, and an optional token. The returned accessToken is sent as Authorization: Bearer on later calls.
- PID
- passcode
- token
- accessToken
- refreshToken
- userId
- username
- fullName
- secret
- language
- tokenType
- userType
- success
- message
POST /v1/auth/verify HTTP/1.1 Content-Type: application/json { "PID": "pid-8f21a4", "passcode": "482913", "token": "" }{ "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example", "refreshToken": "rt-c91e2b", "userId": 18482911, "username": "7701234567", "fullName": "Ahmed Ali", "secret": "sk-asiacell-7c11", "language": "en", "tokenType": "Bearer", "userType": "PREPAID", "success": true, "message": "Logged in" }Fetch signed-in home dashboard
GET
/v2/dashboard/homeopenbankingReturns the signed-in home payload: current plan name, remaining balance/data point tiles, and Shukran loyalty remain/total used by the Asiacell home screen.
Auth: Authorization: Bearer accessToken from the OTP-confirm call. Optional lat/lon query params from the device.
- success
- message
- nextAction
- data
- plan
- title
- name
- points
- value
- loyaltyPoint
- remain
- total
- expiration
- registered
- icon
- logo
- color
GET /v2/dashboard/home?lat=33.3152&lon=44.3661 HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "success": true, "message": "OK", "nextAction": null, "data": { "plan": { "title": "Your plan", "name": "Asiacell Super 15" }, "points": [ {"title": "Balance", "value": "12500 IQD"}, {"title": "Data", "value": "8.4 GB"} ], "loyaltyPoint": { "title": "Shukran", "value": "420", "remain": 420.0, "total": 1000.0, "expiration": "2026-12-31", "registered": true, "icon": "shukran", "logo": "https://cdn.example.com/static/shukran.png", "color": "#E30613" } } }Read subscriber profile
GET
/v1/subscriber/profileosintLoads the authenticated subscriber's legal name parts, MSISDN, email and profile photo shown on the account/profile screen.
Auth: Authorization: Bearer accessToken from the OTP-confirm call.
- success
- message
- title
- nextAction
- data
- firstName
- lastName
- thirdName
- phone
- photo
GET /v1/subscriber/profile HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "success": true, "message": "OK", "title": "Profile", "nextAction": null, "data": { "firstName": "Ahmed", "lastName": "Ali", "thirdName": "Hassan", "phone": "7701234567", "email": "[email protected]", "photo": "https://cdn.example.com/media/profile/18482911.jpg" } }List usage records
GET
/v1/usage/recordsopendataReturns a paged call-detail record list for My Pocket: voice/data/SMS rows with amount, unit, counterparty subtitle and description, plus total/limit/page.
Auth: Authorization: Bearer accessToken from the OTP-confirm call. Paginated with limit/page; viewing the detail list is gated behind an SMS OTP confirm step.
- success
- message
- data
- amount
- unit
- title
- subTitle
- description
- total
- limit
- page
GET /v1/usage/records?page=1&limit=20 HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "success": true, "message": "OK", "data": { "data": [ { "amount": "150", "unit": "IQD", "title": "Voice", "subTitle": "07701234568", "description": "2 min 14 sec · 2026-09-26 18:42" }, { "amount": "24", "unit": "MB", "title": "Data", "subTitle": "Mobile internet", "description": "2026-09-26 19:10" } ], "total": 86, "limit": 20, "page": 1 } }Read prepaid main balance for top-up
GET
/v1/billing/balanceopenbankingReturns the prepaid mainBalance and currency shown on the recharge screen before the subscriber picks a voucher or online payment method.
Auth: Authorization: Bearer accessToken from the OTP-confirm call.
- success
- message
- title
- nextAction
- data
- mainBalance
- currency
- note
GET /v1/billing/balance HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "success": true, "message": "OK", "title": "Recharge", "nextAction": null, "data": { "title": "Main balance", "mainBalance": 12500.0, "currency": "IQD", "note": "Valid until 12 Oct 2026" } }Fetch postpaid bill amount
GET
/v1/billing/invoiceopenfinanceReturns the outstanding postpaid bill amount (data) and dueDate used by the pay-bill flow before the payment POST.
Auth: Authorization: Bearer accessToken from the OTP-confirm call.
- success
- message
- title
- data
- dueDate
- nextAction
GET /v1/billing/invoice HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "success": true, "message": "OK", "title": "Current bill", "data": 18500.0, "dueDate": "2026-10-05", "nextAction": null }List recharge payment methods
GET
/v1/billing/payment-methodsopenfinanceLists voucher vs online recharge rails (FastPay, AsiaPay and other wallets) the subscriber can pick before confirming a top-up.
Auth: Authorization: Bearer accessToken from the OTP-confirm call.
- success
- message
- data
- title
- desc
- voucherPayment
- onlinePayments
- id
- icon
- selected
GET /v1/billing/payment-methods HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "success": true, "message": "OK", "data": { "title": "How do you want to pay?", "desc": "Choose a voucher or online wallet", "voucherPayment": { "title": "Scratch card" }, "onlinePayments": [ { "id": 2, "title": "FastPay", "icon": "fastpay", "selected": true }, { "id": 4, "title": "AsiaPay", "icon": "asiapay", "selected": false } ] } }Start airtime credit transfer
POST
/v1/transfers/initiateopenbankingStarts a prepaid airtime gift to another Asiacell MSISDN and returns a PID so the sender can confirm the amount with an SMS OTP.
Auth: Authorization: Bearer accessToken from the OTP-confirm call. Completing the transfer requires an SMS OTP confirm, then a separate execute call.
- receiverMsisdn
- amount
- success
- message
- title
- PID
- nextAction
- data
POST /v1/transfers/initiate HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "receiverMsisdn": "7709876543", "amount": 5000.0 }{ "success": true, "message": "Confirm with OTP", "title": "Transfer credit", "PID": "pid-ct-44ab", "nextAction": "OTP", "data": null }List add-on packs
GET
/v1/catalog/bundlesopendataReturns the add-on catalog filters and pack tiles (title, price, validity) shown when a subscriber browses extra data or voice bundles.
Auth: Authorization: Bearer accessToken from the OTP-confirm call.
- success
- message
- data
- filter
- id
- title
- bodies
- price
- validity
GET /v1/catalog/bundles HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "success": true, "message": "OK", "data": { "filter": [ {"id": "data", "title": "Data"}, {"id": "voice", "title": "Voice"} ], "bodies": [ { "title": "Weekly 2GB", "price": "3000 IQD", "validity": "7 days" } ] } }Fetch add-on pack detail
GET
/v1/catalog/bundles/{id}opendataReturns a single add-on pack's price, validity, benefit icons and subscribe actions used on the pack-detail screen.
Auth: Authorization: Bearer accessToken from the OTP-confirm call.
- success
- message
- data
- title
- price
- validity
- expiryTitle
- detail
- tags
- benefits
- icon
- postIcons
- links
- actionButtons
GET /v1/catalog/bundles/weekly-2gb HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "success": true, "message": "OK", "data": { "title": "Weekly 2GB", "price": "3000 IQD", "validity": "7 days", "expiryTitle": "Expires 7 days after activation", "detail": "2GB high-speed data, then 128 kbps", "tags": [{"title": "Data"}], "benefits": [ {"icon": "data", "title": "2 GB", "postIcons": []} ], "links": [], "actionButtons": [{"title": "Subscribe"}] } }Fetch Shukran loyalty home
GET
/v2/rewards/homeopenfinanceLoads the Shukran loyalty home: remaining points copy, redeem sections and the action that starts a redemption by id.
Auth: Authorization: Bearer accessToken from the OTP-confirm call. lang query selects en/ar/ku copy.
- success
- message
- data
- title
- subTitle
- sections
- actionButton
- detailSection
GET /v2/rewards/home?lang=en HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "success": true, "message": "OK", "data": { "title": "Shukran", "subTitle": "Your rewards", "message": "You have 420 points", "sections": [ {"title": "Redeem", "points": 420} ], "actionButton": {"title": "Redeem now"}, "detailSection": {"title": "How Shukran works"} } }List active subscribed offers
GET
/v1/catalog/activeopendataReturns currently active packs on the line — remaining balance text and validity — used by the manage-offers / account-overview cards.
Auth: Authorization: Bearer accessToken from the OTP-confirm call.
- success
- message
- data
- bodies
- title
- balance
- validity
GET /v1/catalog/active HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "success": true, "message": "OK", "data": { "bodies": [ { "title": "Weekly 2GB", "balance": "1.2 GB left", "validity": "Expires 03 Oct 2026" } ] } }
Data categories
- balances
- usage
- profile
- payments
- bills
- transfers
- loyalty
- add-ons
Where teams use this data
Prepaid balance and usage reconciliation
Nightly jobs pull GET /v2/dashboard/home and GET /v1/billing/balance for mainBalance / remaining data tiles, then page GET /v1/usage/records to match voice and data rows (amount, unit, subTitle) against an internal usage ledger.
Postpaid bill-pay and recharge rails
A payments ops console reads GET /v1/billing/invoice (data + dueDate) and GET /v1/billing/payment-methods (voucherPayment vs onlinePayments id/title) so agents can quote the right FastPay or AsiaPay rail before the subscriber confirms.
Airtime gift monitoring
Family-plan tooling posts POST /v1/transfers/initiate with receiverMsisdn and amount, stores the returned PID, and records success/message after the SMS OTP so household airtime gifts are auditable.
Pack catalog and Shukran loyalty
A retail dashboard lists GET /v1/catalog/bundles packs (price, validity) and GET /v1/catalog/active remaining balance, then shows GET /v2/rewards/home sections so staff can explain redeemable points next to the live line.
Frequently asked questions
How does Asiacell authenticate subscriber API calls?
POST /v1/auth/start sends the MSISDN as username and returns a nextUrl whose PID is posted with the SMS passcode to /v1/auth/verify. That call returns accessToken, refreshToken, userId, username, fullName and userType; later requests send Authorization: Bearer plus the accessToken.
Which endpoints expose prepaid balance and usage?
GET /v2/dashboard/home returns plan name plus point tiles and loyalty remain/total. GET /v1/billing/balance returns mainBalance and currency. GET /v1/usage/records pages My Pocket call-detail rows with amount, unit, title, subTitle and description.
How do top-up and bill pay work in the Asiacell app?
GET /v1/billing/payment-methods lists voucherPayment and onlinePayments (FastPay, AsiaPay). Postpaid lines read GET /v1/billing/invoice for the outstanding amount and dueDate before paying via a payment POST.
Can I see add-on packs and Shukran points?
GET /v1/catalog/bundles lists catalog filters and pack tiles; GET /v1/catalog/bundles/{id} returns price, validity and benefits. GET /v1/catalog/active shows remaining balance on live packs. GET /v2/rewards/home?lang=en is the loyalty home used to start a redemption.
Apps similar to Asiacell
- Zain Iraq — Zain Iraq's official app lets subscribers of the Iraqi mobile operator manage their line: check balances, recharge, pay bills and transfer credit between prepaid lines.
- MyKorek — MyKorek is the subscriber app of Korek Telecom, an Iraqi mobile operator headquartered in Erbil with a focus on the Kurdistan Region.
- Alwatani — Alwatani is Earthlink's app for subscribers of the Iraqi internet provider's fiber-to-the-home broadband service.
- hambi (Beeline Uzbekistan) — hambi is Beeline Uzbekistan's super-app, combining mobile account and tariff management with everyday digital services.
Topics
- asiacell api
- asiacell data api
- asiacell balance
- asiacell usage records
- asiacell recharge
- asiacell bill pay
- asiacell credit transfer
- asiacell shukran
- asiacell add-on
- iraqi telecom api
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