Azercell data API: balances, invoices and SimKredit
Azercell is the official self-care app of Azercell Telekom MMC, Azerbaijan's largest mobile operator, built for prepaid and postpaid subscribers to run their line from the phone. Sign-in uses the mobile number plus a one-time SMS code, then a passcode, and the home screen opens on Azerbaijani-manat core, data, voice and SMS buckets together with the current tariff. Postpaid customers see open invoice amounts with billing and due dates and pay from the app; prepaid users take SimKredit airtime loans, redeem vouchers and page top-up history by source. The same client manages family child numbers, roaming, VoLTE and data-line flags, and a catalog of data packs with display prices and recurrence. It serves mobile subscribers across Azerbaijan, where Azercell competes with Bakcell and Nar Mobile.
A 994-prefixed Azercell MSISDN maps onto a live subscriber ledger in Azerbaijani manats. After passcode login the session carries accessToken and refreshToken plus the holder's firstName, lastName and role, while the profile adds msisdn, preferredName, email and photoUrl, and the personal-data record holds birthdate, documentPin and documentNumber. The money side splits prepaid buckets — core, data, voice and sms, each with currentAmount, unitType and expirationDate — from the postpaid pair openInvoiceAmount and advanceAmount, and from SimKredit totalDebtAmount with per-loan creditBody, creditFee and remainingCurrentAmount.
Top-up history pages paymentDate, paymentAmount, transactionId and paymentSource; unpaid invoices list invoiceId, openAmount, billingDate and dueDate; the pack catalog returns productOfferingId, displayPrice and recurrenceType; family lines expose child number and name; line-status flags include roamingStatus, dataStatus and voLTE.
Finance ops teams reconcile AZN buckets and invoice due dates, credit desks watch SimKredit debt, household tools pin child MSISDNs, and retail staff quote pack prices next to the live line — and openData Studio turns that subscriber ledger into callable open data.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Check login flow for an MSISDN
POST
/v1/auth/startosintStarts Azercell self-care login for a subscriber MSISDN and returns authFlow (OTP_FLOW or LOGIN_FLOW) plus the otpRequestId used by the SMS confirm step.
Auth: Unauthenticated basic device headers: Content-Type application/json, X-DEVICE-ID, X-DEVICE-ID-SIGNATURE, X-DEVICE-MODEL, X-SYSTEM-OS=android, V-Version, V-Source=android, application-id=VCC, Accept-Language. Body is msisdn plus publicKeyExist.
- msisdn
- publicKeyExist
- status
- result
- authFlow
- otpRequestId
POST /v1/auth/start HTTP/1.1 Content-Type: application/json X-DEVICE-ID: 8f21a4c2-9b11-4e0a-a3d1-55c17a91f0e2 V-Version: 5.1.0+13557 V-Source: android application-id: VCC Accept-Language: az { "msisdn": "994501234567", "publicKeyExist": true }{ "status": 200, "result": { "authFlow": "OTP_FLOW", "otpRequestId": "otp-8f21a4c2" } }Confirm SMS OTP for login
POST
/v1/auth/otposintConfirms the SMS OTP for the login otpRequestId and returns the proceedKey required by the passcode login call.
Auth: Unauthenticated basic device headers: Content-Type application/json, X-DEVICE-ID, X-DEVICE-ID-SIGNATURE, X-DEVICE-MODEL, X-SYSTEM-OS=android, V-Version, V-Source=android, application-id=VCC, Accept-Language. Body carries msisdn, otp and otpRequestId from the login-start call.
- msisdn
- otp
- otpRequestId
- status
- result
- proceedKey
POST /v1/auth/otp HTTP/1.1 Content-Type: application/json X-DEVICE-ID: 8f21a4c2-9b11-4e0a-a3d1-55c17a91f0e2 V-Version: 5.1.0+13557 application-id: VCC { "msisdn": "994501234567", "otp": "482913", "otpRequestId": "otp-8f21a4c2" }{ "status": 200, "result": { "proceedKey": "pk-c91e2b77" } }Sign in with passcode and issue tokens
POST
/v1/auth/loginosintCompletes Azercell self-care login with the subscriber passcode and proceedKey, returning accessToken / refreshToken, the holder's firstName, lastName and role, any childAccounts, and an externalId.
Auth: Unauthenticated basic device headers: Content-Type application/json, X-DEVICE-ID, X-DEVICE-ID-SIGNATURE, X-DEVICE-MODEL, X-SYSTEM-OS=android, V-Version, V-Source=android, application-id=VCC, Accept-Language. Body is passcode, msisdn, firstLoginInDevice and proceedKey from OTP verification. The returned accessToken is sent as X-ACCESS-TOKEN on later calls.
- passcode
- msisdn
- firstLoginInDevice
- proceedKey
- status
- result
- loginDetails
- customerResponse
- firstName
- lastName
- role
- migrated
- accessToken
- refreshToken
- impersonatedLogin
- childAccounts
- externalId
POST /v1/auth/login HTTP/1.1 Content-Type: application/json X-DEVICE-ID: 8f21a4c2-9b11-4e0a-a3d1-55c17a91f0e2 V-Version: 5.1.0+13557 application-id: VCC Accept-Language: az { "passcode": "147258", "msisdn": "994501234567", "firstLoginInDevice": false, "proceedKey": "pk-c91e2b77" }{ "status": 200, "result": { "loginDetails": { "customerResponse": { "firstName": "Leyla", "lastName": "Mammadova", "role": "B2C_PREPAID", "migrated": true }, "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example", "refreshToken": "rt-azercell-7c11", "impersonatedLogin": false }, "childAccounts": ["994557654321"], "migrated": true, "externalId": "ext-18482911" } }Read prepaid core, data, voice and SMS buckets
GET
/v1/account/balancesopenbankingReturns the signed-in line's prepaid AZN core bucket plus data, voice and SMS remaining amounts with expiry, the tariff primaryOffer (offerName, nextApplyDate) and optional unbilledBalance totals.
Auth: X-ACCESS-TOKEN from POST /v1/auth/login, plus X-LOGIN (MSISDN), X-CONTROL-FLOW (DEFAULT or MULTIPLE_ACCOUNT), X-TARGET, X-IS-MIGRATED, X-DEVICE-ID, V-Version, application-id=VCC, Accept-Language.
- core
- tariff
- data
- voice
- sms
- unitType
- currentAmount
- expirationDate
- deactivationDate
- offers
- unbilledBalance
- advancePaymentSummary
- advPayment
- amount
- totalsSummary
- totalUnbilledChgAmt
- primaryOffer
- offerId
- offerName
- nextApplyDate
- lastRenewDate
- validityPeriod
- isCyclical
- recurrencyStatus
- grants
- uiName
- currentAmountDisplayValue
- currentAmountUnitType
- grantedAmount
- usageType
- unlimited
GET /v1/account/balances HTTP/1.1 X-ACCESS-TOKEN: eyJhbGciOi... X-LOGIN: 994501234567 X-CONTROL-FLOW: DEFAULT V-Version: 5.1.0+13557 application-id: VCC Accept-Language: az{ "core": { "unitType": "AZN", "currentAmount": 12.5, "expirationDate": "2026-12-31T00:00:00Z", "deactivationDate": null, "offers": [], "unbilledBalance": { "advancePaymentSummary": {"advPayment": {"amount": 0.0}}, "totalsSummary": {"totalUnbilledChgAmt": {"amount": 0.0}} } }, "tariff": { "primaryOffer": { "offerId": "SOC_AZER24", "offerName": "Azercell 24", "nextApplyDate": "2026-11-01T00:00:00Z", "lastRenewDate": "2026-10-01T00:00:00Z", "expirationDate": "2026-11-01T00:00:00Z", "validityPeriod": "P30D", "isCyclical": true, "recurrencyStatus": "ACTIVE" } }, "data": { "unitType": "MB", "currentAmount": 8400.0, "expirationDate": "2026-11-01T00:00:00Z", "offers": [{ "offerId": "DATA_8GB", "offerName": "8 GB", "grants": [{ "uiName": "Internet", "currentAmount": 8400.0, "currentAmountDisplayValue": "8.4 GB", "currentAmountUnitType": "MB", "grantedAmount": "10240", "expirationDate": "2026-11-01T00:00:00Z", "usageType": "DATA", "unlimited": false }] }] }, "voice": { "unitType": "MIN", "currentAmount": 320.0, "expirationDate": "2026-11-01T00:00:00Z" }, "sms": { "unitType": "SMS", "currentAmount": 80.0, "expirationDate": "2026-11-01T00:00:00Z" } }Read postpaid open-invoice versus advance
GET
/v1/billing/summaryopenfinanceReturns the postpaid openInvoiceAmount still due and the advanceAmount already on the account, used on the home balance-summary tile.
Auth: X-ACCESS-TOKEN from POST /v1/auth/login, plus X-LOGIN (MSISDN), X-CONTROL-FLOW (DEFAULT or MULTIPLE_ACCOUNT), X-TARGET, X-IS-MIGRATED, X-DEVICE-ID, V-Version, application-id=VCC, Accept-Language.
- openInvoiceAmount
- advanceAmount
GET /v1/billing/summary HTTP/1.1 X-ACCESS-TOKEN: eyJhbGciOi... X-LOGIN: 994501234567 V-Version: 5.1.0+13557 application-id: VCC{ "openInvoiceAmount": 18.4, "advanceAmount": 5.0 }Page unpaid invoices
GET
/v1/billing/invoicesopenfinancePages postpaid invoices for the MSISDN with invoiceId, remaining openAmount, invoiceTotalAmount, billingDate and dueDate; openInvoiceOnly=true keeps the unpaid list.
Auth: X-ACCESS-TOKEN from POST /v1/auth/login, plus X-LOGIN (MSISDN), X-CONTROL-FLOW (DEFAULT or MULTIPLE_ACCOUNT), X-TARGET, X-IS-MIGRATED, X-DEVICE-ID, V-Version, application-id=VCC, Accept-Language. Query: page, limit, openInvoiceOnly.
- invoices
- invoiceId
- invoiceResets
- openAmount
- invoiceTotalAmount
- billingDate
- dueDate
- invoiceDocumentDetails
- page
- limit
- openInvoiceOnly
GET /v1/billing/invoices?page=1&limit=10&openInvoiceOnly=true HTTP/1.1 X-ACCESS-TOKEN: eyJhbGciOi... X-LOGIN: 994501234567 application-id: VCC{ "invoices": [ { "invoiceId": 884211, "invoiceResets": 0, "openAmount": 18.4, "invoiceTotalAmount": 22.0, "billingDate": "2026-09-01", "dueDate": "2026-10-05", "invoiceDocumentDetails": [] } ] }Page top-up payment history
GET
/v1/payments/historyopenbankingPages the line's top-up ledger: each PaymentItem has paymentDate, paymentAmount, description, transactionId and paymentSource, plus totalCount and totalAmount.
Auth: X-ACCESS-TOKEN from POST /v1/auth/login, plus X-LOGIN (MSISDN), X-CONTROL-FLOW (DEFAULT or MULTIPLE_ACCOUNT), X-TARGET, X-IS-MIGRATED, X-DEVICE-ID, V-Version, application-id=VCC, Accept-Language. Query: fromDate, toDate, page, limit.
- status
- data
- paymentHistory
- paymentDate
- paymentAmount
- description
- transactionId
- paymentSource
- totalCount
- totalAmount
- page
- limit
GET /v1/payments/history?fromDate=2026-09-01&toDate=2026-10-01&page=1&limit=20 HTTP/1.1 X-ACCESS-TOKEN: eyJhbGciOi... X-LOGIN: 994501234567 application-id: VCC{ "status": "OK", "data": { "paymentHistory": [ { "paymentDate": "2026-09-26T18:42:00Z", "paymentAmount": 10.0, "description": "Akart top-up", "transactionId": "txn-9c21e4", "paymentSource": "AKART" } ], "totalCount": 14, "totalAmount": 85.0, "page": 1, "limit": 20 } }Read SimKredit debt info
GET
/v1/credit/debtopenfinanceReturns outstanding SimKredit airtime-loan debt: totals (creditAmount, serviceFee, totalDebtAmount) and per-loan creditBody, creditFee, remainingCurrentAmount, creditType and creditDate.
Auth: X-ACCESS-TOKEN from POST /v1/auth/login, plus X-LOGIN (MSISDN), X-CONTROL-FLOW (DEFAULT or MULTIPLE_ACCOUNT), X-TARGET, X-IS-MIGRATED, X-DEVICE-ID, V-Version, application-id=VCC, Accept-Language.
- debtInfo
- creditAmount
- serviceFee
- totalDebtAmount
- debts
- debtId
- id
- creditBody
- creditFee
- currentAmount
- remainingCurrentAmount
- creditType
- creditTypeTitle
- chargingType
- creditDate
- title
GET /v1/credit/debt HTTP/1.1 X-ACCESS-TOKEN: eyJhbGciOi... X-LOGIN: 994501234567 application-id: VCC{ "debtInfo": { "creditAmount": 5.0, "serviceFee": 0.5, "totalDebtAmount": 5.5, "debts": [ { "debtId": 4412.0, "id": "kredit-4412", "creditBody": 5.0, "creditFee": 0.5, "currentAmount": 5.5, "remainingCurrentAmount": 5.5, "creditType": "AIRTIME", "creditTypeTitle": "SimKredit", "chargingType": "NEXT_TOPUP", "creditDate": "2026-09-20", "title": "5 AZN SimKredit" } ] } }List available SimKredit offers
GET
/v1/credit/offersopenfinanceLists SimKredit loan offers the line can still collect, keyed by type, each with creditVolume, creditUnit, creditDuration, price, fee and deductionType.
Auth: X-ACCESS-TOKEN from POST /v1/auth/login, plus X-LOGIN (MSISDN), X-CONTROL-FLOW (DEFAULT or MULTIPLE_ACCOUNT), X-TARGET, X-IS-MIGRATED, X-DEVICE-ID, V-Version, application-id=VCC, Accept-Language.
- status
- availableKredits
- title
- creditVolume
- creditUnit
- creditType
- creditDuration
- price
- fee
- deductionType
- deduction
- description
GET /v1/credit/offers HTTP/1.1 X-ACCESS-TOKEN: eyJhbGciOi... X-LOGIN: 994501234567 application-id: VCC{ "status": "OK", "availableKredits": { "AIRTIME_5": { "title": "5 AZN", "creditVolume": 5.0, "creditUnit": "AZN", "creditType": "AIRTIME", "creditDuration": 7, "price": 5.5, "fee": 0.5, "deductionType": "NEXT_TOPUP", "deduction": 5.5 } } }List data-pack product offerings
GET
/v1/catalog/packsopendataReturns the add-on catalog grouped as addons, topOffers and roamingAddons; each ProductOffering carries productOfferingId, displayPrice, recurrenceType and characteristicValues such as VOLUME_MB.
Auth: X-ACCESS-TOKEN from POST /v1/auth/login, plus X-LOGIN (MSISDN), X-CONTROL-FLOW (DEFAULT or MULTIPLE_ACCOUNT), X-TARGET, X-IS-MIGRATED, X-DEVICE-ID, V-Version, application-id=VCC, Accept-Language. Optional categoryGroup query filters the catalog.
- data
- addons
- topOffers
- roamingAddons
- categoryId
- name
- productOfferings
- childCategories
- productOfferingId
- longDescription
- active
- isPrimary
- productType
- displayPrice
- recurrenceType
- characteristicValues
- value
- productSpecName
- characteristicName
- characteristicId
- configurable
GET /v1/catalog/packs?categoryGroup=DATA HTTP/1.1 X-ACCESS-TOKEN: eyJhbGciOi... X-LOGIN: 994501234567 application-id: VCC Accept-Language: az{ "data": { "addons": [ { "categoryId": "DATA", "name": "Internet", "productOfferings": [ { "productOfferingId": "PO-8GB-30D", "name": "8 GB / 30 days", "longDescription": "8 GB high-speed data", "active": true, "isPrimary": false, "productType": "DATA", "displayPrice": 9.0, "recurrenceType": "ONE_OFF", "characteristicValues": [ { "value": "8192", "productSpecName": "Data", "characteristicName": "VOLUME_MB", "characteristicId": 12, "configurable": false } ] } ], "childCategories": [] } ], "topOffers": [], "roamingAddons": [] } }Read signed-in user profile
GET
/v1/account/holderosintLoads the authenticated Azercell profile: MSISDN, email, preferredName, photoUrl, personalDataVerifiedDate and pinAvailable / canUpdate flags.
Auth: X-ACCESS-TOKEN from POST /v1/auth/login, plus X-LOGIN (MSISDN), X-CONTROL-FLOW (DEFAULT or MULTIPLE_ACCOUNT), X-TARGET, X-IS-MIGRATED, X-DEVICE-ID, V-Version, application-id=VCC, Accept-Language.
- data
- msisdn
- preferredName
- personalDataVerifiedDate
- photoUrl
- verificationAvailableFrom
- createdAt
- updatedAt
- canUpdate
- pinAvailable
GET /v1/account/holder HTTP/1.1 X-ACCESS-TOKEN: eyJhbGciOi... X-LOGIN: 994501234567 application-id: VCC{ "data": { "msisdn": "994501234567", "email": "[email protected]", "preferredName": "Leyla", "personalDataVerifiedDate": "2026-01-12", "photoUrl": "https://cdn.example.com/photos/18482911.jpg", "verificationAvailableFrom": "2026-04-12", "createdAt": "2024-03-01T10:00:00Z", "updatedAt": "2026-09-20T08:11:00Z", "canUpdate": true, "pinAvailable": true } }Read personal identity data
GET
/v1/profile/kycosintReturns the KYC identity record stored on the Azercell account: legal name, surname, birthdate, documentPin and documentNumber.
Auth: X-ACCESS-TOKEN from POST /v1/auth/login, plus X-LOGIN (MSISDN), X-CONTROL-FLOW (DEFAULT or MULTIPLE_ACCOUNT), X-TARGET, X-IS-MIGRATED, X-DEVICE-ID, V-Version, application-id=VCC, Accept-Language.
- data
- name
- surname
- birthdate
- documentPin
- documentNumber
GET /v1/profile/kyc HTTP/1.1 X-ACCESS-TOKEN: eyJhbGciOi... X-LOGIN: 994501234567 application-id: VCC{ "data": { "name": "Leyla", "surname": "Mammadova", "birthdate": "1994-03-12", "documentPin": "1ABC234", "documentNumber": "AZE1234567" } }List family child accounts
GET
/v1/family/childrenosintReturns linked household child lines with each MSISDN as number and a display name, so later calls can set X-CONTROL-FLOW=MULTIPLE_ACCOUNT and X-TARGET to that child.
Auth: X-ACCESS-TOKEN from POST /v1/auth/login, plus X-LOGIN (MSISDN), X-CONTROL-FLOW (DEFAULT or MULTIPLE_ACCOUNT), X-TARGET, X-IS-MIGRATED, X-DEVICE-ID, V-Version, application-id=VCC, Accept-Language.
- result
- number
- name
- tacInfo
GET /v1/family/children HTTP/1.1 X-ACCESS-TOKEN: eyJhbGciOi... X-LOGIN: 994501234567 X-CONTROL-FLOW: DEFAULT application-id: VCC{ "result": [ { "number": "994557654321", "name": "Kids SIM" } ] }Read SIM line-status flags
GET
/v1/line/statusopendataReturns live SIM feature flags for the line — ACTIVE/NOT_ACTIVE status, dataStatus, roamingStatus, voLTE, fourGStatus, internationalLine and call/SMS barring — used by the SIM-settings screen.
Auth: X-ACCESS-TOKEN from POST /v1/auth/login, plus X-LOGIN (MSISDN), X-CONTROL-FLOW (DEFAULT or MULTIPLE_ACCOUNT), X-TARGET, X-IS-MIGRATED, X-DEVICE-ID, V-Version, application-id=VCC, Accept-Language.
- status
- reason
- dataStatus
- postpaidRoamingStatus
- roamingStatus
- secondLineStatus
- voLTE
- fourGStatus
- threeGStatus
- internationalLine
- barOutgoingSmsStatus
- barringAllOutgoingCalls
GET /v1/line/status HTTP/1.1 X-ACCESS-TOKEN: eyJhbGciOi... X-LOGIN: 994501234567 application-id: VCC{ "status": "ACTIVE", "reason": null, "dataStatus": "ENABLED", "postpaidRoamingStatus": "DISABLED", "roamingStatus": "DISABLED", "secondLineStatus": "DISABLED", "voLTE": "ENABLED", "fourGStatus": "ENABLED", "threeGStatus": "ENABLED", "internationalLine": "ENABLED", "barOutgoingSmsStatus": "DISABLED", "barringAllOutgoingCalls": "DISABLED" }
Data categories
- balances
- invoices
- profile
- payments
- credit
- add-ons
- family-lines
- sim-status
Where teams use this data
Prepaid bucket and postpaid invoice reconciliation
Nightly jobs pull GET /v1/account/balances for core/data/voice/sms currentAmount, unitType and expirationDate, then GET /v1/billing/summary for openInvoiceAmount versus advanceAmount so finance can match AZN ledgers before the dueDate on unpaid invoices.
SimKredit airtime-loan desk
A credit console reads GET /v1/credit/debt (totalDebtAmount, creditAmount, serviceFee and per-loan remainingCurrentAmount) next to GET /v1/credit/offers (creditVolume, creditUnit, price, fee) so agents only offer loans the line can still collect.
Family-line spend overview
Household tooling lists GET /v1/family/children (number, name) and reuses the parent X-ACCESS-TOKEN with X-CONTROL-FLOW=MULTIPLE_ACCOUNT and X-TARGET set to the child MSISDN to read that line's buckets without a second login.
Pack catalog next to live line flags
Retail dashboards join GET /v1/catalog/packs (productOfferingId, displayPrice, recurrenceType) with GET /v1/line/status (roamingStatus, dataStatus, voLTE) so staff can quote a pack against the line's live roaming and data flags.
Frequently asked questions
How does Azercell authenticate subscriber API calls?
POST /v1/auth/start sends msisdn and publicKeyExist and returns authFlow plus otpRequestId. POST /v1/auth/otp confirms the SMS otp; POST /v1/auth/login then sends passcode, msisdn and proceedKey and returns accessToken and refreshToken. Later calls send X-ACCESS-TOKEN, X-LOGIN (the MSISDN), X-DEVICE-ID, V-Version and application-id=VCC.
Which endpoints expose prepaid buckets and postpaid invoices?
GET /v1/account/balances returns core, data, voice and sms buckets (currentAmount, unitType, expirationDate) plus the tariff primaryOffer. GET /v1/billing/summary returns openInvoiceAmount and advanceAmount. GET /v1/billing/invoices pages invoiceId, openAmount, billingDate and dueDate.
What is SimKredit on the Azercell API?
SimKredit is Azercell's airtime-loan product. GET /v1/credit/debt returns totalDebtAmount, creditAmount, serviceFee and a debts array (creditBody, creditFee, remainingCurrentAmount, creditType). GET /v1/credit/offers lists loan offers with creditVolume, creditUnit, price and fee.
Can the Azercell API see family lines and pack catalog?
Yes. GET /v1/family/children returns each child number and name. GET /v1/catalog/packs lists addons and topOffers with productOfferingId, displayPrice and recurrenceType. GET /v1/account/holder and GET /v1/profile/kyc carry the signed-in msisdn, email and documentPin.
Apps similar to Azercell
- Bakcell — Bakcell is an Azerbaijani mobile operator's self-care app: subscribers check remaining credit, change tariffs and pay bills from the phone.
- Nar — Nar (Nar Mobile) is Azerfon's subscriber app for the Azerbaijani mobile operator, covering prepaid balance, packs and bill pay.
- Asiacell — Asiacell is the official self-care app of ASIACELL COMMUNICATIONS PJSC for Iraqi prepaid and postpaid subscribers: home balances, usage records, top-up and Shukran loyalty.
- hambi (Beeline Uzbekistan) — hambi is Beeline Uzbekistan's self-care app from UNITEL, combining core balance, traffic buckets and family sub-accounts.
Topics
- azercell api
- azercell data api
- azercell kabinetim
- azercell balance
- azercell invoice
- azercell simkredit
- azercell top-up history
- azerbaijan telecom api
- azercell child accounts
- azercell data packs
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