Asiacell data API: balances, usage and top-up
Asiacell is the self-care app for ASIACELL COMMUNICATIONS PJSC subscribers. After MSISDN + OTP login the client calls /v2/dashboard/home for plan, remaining buckets and Shukran points, /v1/usage/records for My Pocket call-detail usage, and /v1/billing/balance for the IQD mainBalance — with bill amount, payment rails, credit transfer and add-on packs on sibling paths.
Every signed-in call carries an Authorization: Bearer accessToken issued by the OTP-confirm step, so balance, usage, catalog and loyalty reads all share the same session.
Asiacell is ASIACELL COMMUNICATIONS PJSC's self-care app for Iraqi prepaid and postpaid lines: the home screen shows plan, remaining buckets and loyalty points, My Pocket lists call-detail usage, and the wallet flows cover voucher/online top-up, postpaid bill amount, airtime credit transfer and Shukran rewards. After MSISDN + OTP login the client attaches a Bearer accessToken to every call against a first-party HTTPS API — the dashboard, usage records, balance and subscriber-profile endpoints return the live line, IQD balance and profile used by those screens.
Screenshots
API surface
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
Illustrative example reconstructed from the app's interface — not a live capture.
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" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's phone-number login flowthe nextUrl PID is the value the OTP-confirm screen submits
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
Illustrative example reconstructed from the app's interface — not a live capture.
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" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's OTP-confirm stepthe token pair and profile fields match what the app stores in its session
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
Illustrative example reconstructed from the app's interface — not a live capture.
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" } } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's home dashboardplan, point tiles and loyalty fields line up with the tiles rendered on the home screen
Read subscriber profile
GET
/v1/account/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
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/account/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" } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's account/profile screen
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
Illustrative example reconstructed from the app's interface — not a live capture.
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 } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's My Pocket usage listthe list is paged and gated behind an SMS OTP confirm
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
Illustrative example reconstructed from the app's interface — not a live capture.
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" } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's recharge screen
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
Illustrative example reconstructed from the app's interface — not a live capture.
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 }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's pay-bill flow
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
Illustrative example reconstructed from the app's interface — not a live capture.
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 } ] } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's payment-picker screen
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
Illustrative example reconstructed from the app's interface — not a live capture.
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 }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's credit-transfer flowthe returned PID is confirmed with an SMS OTP before the transfer executes
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
Illustrative example reconstructed from the app's interface — not a live capture.
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" } ] } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's add-on catalog
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
Illustrative example reconstructed from the app's interface — not a live capture.
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"}] } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's pack-detail screen
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
Illustrative example reconstructed from the app's interface — not a live capture.
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"} } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's Shukran loyalty home
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
Illustrative example reconstructed from the app's interface — not a live capture.
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" } ] } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's manage-offers and account-overview cards
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.
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.