My lifecell data API: balances, credit and eSIM
My lifecell is the official self-care app of lifecell, the Ukrainian mobile operator in the Turkcell group, built so prepaid and contract subscribers can run their line from the phone. Sign-in uses the mobile number through the carrier's Keycloak SSO; the home screen then opens on remaining airtime, data and monthly-fee buckets plus the current tariff. From there people top up by card or Google Pay, turn on a credit limit, set autopay, order an eSIM QR, confirm identity through Ukraine's Diia app, check roam-like-at-home prices, and attach extra family numbers under a master line, with a Volia TV and internet bundle available on the same account. It serves mobile customers across Ukraine, where lifecell competes with Kyivstar and Vodafone Ukraine.
Prepaid and contract buckets land as balanceDetails rows with code, amount, measure, grantedAmount, percentage and renewDate (the monthly-fee counter is Counter_Free_MonthlyFee), while the subscriber record pairs msisdn with a tariff (name, tariffPriceFull, period) and contract.activationDate.
Credit-limit JSON carries creditLimit, availableCL, currentMainBalance, feeCL and dateEndCL; charge groups roll up parentGroupDesc against accountTotal and commonMain. Top-up invoices return taskId and transactionId; saved autopay mandates expose cardMask, productSum and nextTryDay. Diia registration copies taxCode, passportCode and addressUsual; eSIM install returns qrCode and activationLink. Family-plan builders, roaming-cost dashboards and KYC back-office tools consume that surface, and openData Studio turns it 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.
Issue mobile session token
GET
/v1/lifecell/session/tokenosintIssues the XML session token for a subscriber MSISDN after device signature checks; the token is sent as query token and as Bearer on subsequent mobile calls.
Auth: Unauthenticated device bootstrap. Query map carries msisdn, deviceId, languageId, accessKeyCode, signature and UUID. Returns an XML token used as query token and as Authorization: Bearer on later calls.
- responseCode
- resultText
- method
- token
- msisdn
- deviceId
- languageId
- accessKeyCode
- signature
- UUID
GET /v1/lifecell/session/token?msisdn=380630000001&deviceId=8f21a4c2-9b11-4e0a-a3d1-55c17a91f0e2&languageId=uk&accessKeyCode=<access-key>&signature=<device-signature>&UUID=550e8400-e29b-41d4-a716-446655440000 HTTP/1.1<?xml version="1.0" encoding="UTF-8"?> <response method="sessionToken"> <responseCode>0</responseCode> <resultText>OK</resultText> <token>lc-sess-7c11e2b9</token> </response>SSO sign-in via Keycloak
GET
/v1/lifecell/auth/ssoosintExchanges a Keycloak SSO artefact for the app session: token, subscriber subId, MSISDN, uniqId and the isOMO (mobile virtual operator) flag.
Auth: Carrier OpenID session already obtained. Query map carries msisdn plus the SSO artefact; Content-Type: application/json. Returns token, subId, msisdn, uniqId and isOMO.
- token
- subId
- msisdn
- uniqId
- isOMO
- responseCode
- resultText
GET /v1/lifecell/auth/sso?msisdn=380630000001&token=kc-at-9f33 HTTP/1.1 Content-Type: application/json<?xml version="1.0" encoding="UTF-8"?> <response method="ssoExchange"> <responseCode>0</responseCode> <resultText>OK</resultText> <token>lc-sess-7c11e2b9</token> <subId>sub-18482911</subId> <msisdn>380630000001</msisdn> <uniqId>uniq-c91e2b</uniqId> <isOMO>false</isOMO> </response>Read subscriber balance buckets
GET
/v1/lifecell/balancesopenbankingReturns the signed-in line's balance buckets: remaining amount and grantedAmount per code, unit measure, renewDate and the monthly-fee counter Counter_Free_MonthlyFee used on the home tiles.
Auth: Session query map on the mobile API: msisdn, token (from bootstrap or SSO), deviceId, languageId, accessKeyCode, signature and UUID. JSON-annotated calls may also send Authorization: Bearer <token>.
- balanceDetails
- code
- amount
- measure
- name
- grantedAmount
- percentage
- renewDate
- type
- isUnlim
- isDayOff
- Counter_Free_MonthlyFee
GET /v1/lifecell/balances?msisdn=380630000001&token=lc-sess-7c11e2b9&deviceId=8f21a4c2-9b11-4e0a-a3d1-55c17a91f0e2&languageId=uk HTTP/1.1 Authorization: Bearer lc-sess-7c11e2b9{ "responseCode": 0, "resultText": "OK", "method": "balances", "balanceDetails": [ { "code": "MAIN", "amount": "185.40", "measure": "UAH", "name": "Main balance", "grantedAmount": "200.00", "percentage": "92", "renewDate": "2026-10-31", "type": "money", "isUnlim": "false", "isDayOff": "false" }, { "code": "Counter_Free_MonthlyFee", "amount": "0.00", "measure": "UAH", "name": "Monthly fee", "grantedAmount": "150.00", "percentage": "0", "renewDate": "2026-11-01", "type": "fee", "isUnlim": "false", "isDayOff": "false" } ] }Load subscriber summary and tariff
GET
/v1/lifecell/summaryopendataLoads the home-screen subscriber record: MSISDN, accessGroupCode, current tariff name/price/period, contract activationDate, short balanceList and named attributes such as LINE_ACTIVATION_DATE and IS_FMC.
Auth: Session query map on the mobile API: msisdn, token (from bootstrap or SSO), deviceId, languageId, accessKeyCode, signature and UUID. JSON-annotated calls may also send Authorization: Bearer <token>.
- subscriber
- msisdn
- accessGroupCode
- useCommonMain
- tariff
- code
- name
- period
- tariffPriceFull
- tariffPriceDiscount
- picture_url
- webview_url
- contract
- activationDate
- activeLinesCount
- contactPerson
- balanceList
- amount
- attributesList
- value
- applicationAttributes
GET /v1/lifecell/summary?msisdn=380630000001&token=lc-sess-7c11e2b9&languageId=uk HTTP/1.1 Authorization: Bearer lc-sess-7c11e2b9{ "responseCode": 0, "resultText": "OK", "subscriber": { "msisdn": "380630000001", "accessGroupCode": "PREPAID", "useCommonMain": true, "tariff": { "code": "SMART_LIFE_2026", "name": "Smart Life", "description": "Calls + data", "short_description": "150 UAH / 4 weeks", "period": "4w", "tariffOrderPeriod": "28", "tariffPriceFull": "150", "tariffPriceDiscount": "150", "picture_url": "/static/tariffs/smart-life.png", "webview_url": "/tariffs/smart-life" }, "contract": { "activationDate": "2023-04-12", "activeLinesCount": 1, "contactPerson": "Olena K.", "lineNumber": "1", "number": "CNT-88421" }, "balanceList": [{"code": "MAIN", "amount": 185.4}], "attributesList": [ {"name": "LINE_ACTIVATION_DATE", "value": "2023-04-12"}, {"name": "IS_FMC", "value": "false"} ] }, "applicationAttributes": { "attributesList": [{"name": "IS_GIFTS_POOL_AVAILABLE", "value": "true"}] } }Read credit-limit status
GET
/v1/lifecell/credit-limitopenfinanceReturns the airtime-credit product: creditStatus, remaining availableCL versus creditLimit, feeCL, currentMainBalance, free-period dateEndFreeCL and scheduled deactivation flag.
Auth: Header map on the mobile API: Authorization: Bearer <token> from bootstrap or SSO, plus deviceId / languageId as required. Query token+msisdn is used on XML calls.
- creditLimitInfo
- creditStatus
- dateEndCL
- feeCL
- creditLimit
- dateEndFreeCL
- availableCL
- currentMainBalance
- minCreditLimit
- maxCreditLimit
- scheduleDeactFlag
GET /v1/lifecell/credit-limit HTTP/1.1 Authorization: Bearer lc-sess-7c11e2b9{ "responseCode": 0, "resultText": "OK", "creditLimitInfo": { "creditStatus": "ACTIVE", "dateEndCL": "2026-11-15", "feeCL": 15.0, "creditLimit": 200.0, "dateEndFreeCL": "2026-10-20", "availableCL": 140.0, "currentMainBalance": 185.4, "minCreditLimit": "50", "maxCreditLimit": "500", "scheduleDeactFlag": false } }Summarise charges by parent group
GET
/v1/lifecell/charges/groupsopenfinanceRolls itemised spend into parent groups (voice, data, SMS) with accountTotal, commonMain/commonBonus versus lineMain/lineBonus, unit measure and volume.
Auth: Session query map on the mobile API: msisdn, token (from bootstrap or SSO), deviceId, languageId, accessKeyCode, signature and UUID. JSON-annotated calls may also send Authorization: Bearer <token>.
- chargesDetailParentGroupSummary
- id
- parentGroupCode
- parentGroupDesc
- accountTotal
- commonBonus
- commonMain
- lineBonus
- lineMain
- measure
- volume
GET /v1/lifecell/charges/groups?msisdn=380630000001&token=lc-sess-7c11e2b9&languageId=uk HTTP/1.1 Authorization: Bearer lc-sess-7c11e2b9{ "responseCode": 0, "resultText": "OK", "chargesDetailParentGroupSummary": [ { "id": 1, "parentGroupCode": 10, "parentGroupDesc": "Voice", "accountTotal": 42.5, "commonBonus": "0.00", "commonMain": "38.00", "lineBonus": "0.00", "lineMain": "4.50", "measure": "UAH", "volume": "86 min" }, { "id": 2, "parentGroupCode": 20, "parentGroupDesc": "Data", "accountTotal": 12.0, "commonBonus": "2.00", "commonMain": "10.00", "lineBonus": "0.00", "lineMain": "0.00", "measure": "UAH", "volume": "3.2 GB" } ] }List available tariffs
GET
/v1/lifecell/tariffsopendataLists catalogue tariffs the signed-in line can switch to, with code, display name, UAH price, period, sort order and image/detail URLs.
Auth: Header map on the mobile API: Authorization: Bearer <token> from bootstrap or SSO, plus deviceId / languageId as required. Query token+msisdn is used on XML calls.
- tariffList
- code
- name
- currency
- period
- price
- order
- imageUrl
- detailUrl
GET /v1/lifecell/tariffs HTTP/1.1 Authorization: Bearer lc-sess-7c11e2b9{ "responseCode": 0, "resultText": "OK", "tariffList": [ { "code": "SMART_LIFE_2026", "name": "Smart Life", "currency": "UAH", "period": "4w", "price": 150.0, "order": 1, "imageUrl": "/static/tariffs/smart-life.png", "detailUrl": "/tariffs/smart-life" }, { "code": "FREE_LIFE", "name": "Free Life", "currency": "UAH", "period": "4w", "price": 90.0, "order": 2, "imageUrl": "/static/tariffs/free-life.png", "detailUrl": "/tariffs/free-life" } ] }Create Oplata top-up invoice
POST
/v1/lifecell/topup/invoiceopenbankingOpens a digital-payment invoice for airtime top-up (email + taskId) and returns taskId/transactionId; the follow-on card/GPay charge body carries amount, msisdn, paymentType, refillSum, orderId, channel and osType.
Auth: HTTP Basic client credentials for the digital payment client, plus headers X-TID, X-LANG and X-CLIENT-ID: Android. Separate from the mobile session token.
- taskId
- transactionId
- amount
- msisdn
- paymentType
- refillSum
- orderId
- channel
- osType
- cardLink
- successUrl
- failedUrl
POST /v1/lifecell/topup/invoice HTTP/1.1 Content-Type: application/json X-TID: tid-c91e2b77 X-LANG: uk X-CLIENT-ID: Android Authorization: Basic <digital-client-credentials> { "email": "[email protected]", "taskId": "inv-8f21a4" }{ "taskId": "inv-8f21a4", "transactionId": "tx-55c17a91" }List autopay mandates
GET
/v1/lifecell/autopayopenfinanceLists saved autopay mandates as payer/receiver rows: masked cardMask, productCode/productSum, nextTryDay, state and the acceptedRule flag on the account.
Auth: Header map on the mobile API: Authorization: Bearer <token> from bootstrap or SSO, plus deviceId / languageId as required. Query token+msisdn is used on XML calls.
- mapAutoPayments
- account
- acceptedRule
- payer
- receiver
- id
- alias
- cardAlias
- cardMask
- cardLink
- productCode
- productType
- productSum
- extraSum
- nextTryDay
- state
- agent
- isNotify
GET /v1/lifecell/autopay HTTP/1.1 Authorization: Bearer lc-sess-7c11e2b9{ "responseCode": 0, "resultText": "OK", "mapAutoPayments": { "account": {"acceptedRule": true}, "payer": [ { "id": 4412, "alias": "My Visa", "cardAlias": "Visa *1111", "cardMask": "444433******1111", "cardLink": "cl-9f33", "email": "[email protected]", "productCode": "MAIN_REFILL", "productType": "REFILL", "productSum": 150.0, "extraSum": 0.0, "nextTryDay": "2026-11-01", "state": "ACTIVE", "payer": "380630000001", "receiver": "380630000001", "agent": "OPLATA", "isNotify": true } ], "receiver": [] } }Read known-customer profile
GET
/v1/lifecell/profileosintReturns the known-customer profile as nested generalSpecification groups of name/value specifications, each marked isEditable for the account screen.
Auth: Session query map on the mobile API: msisdn, token (from bootstrap or SSO), deviceId, languageId, accessKeyCode, signature and UUID. JSON-annotated calls may also send Authorization: Bearer <token>.
- clientInfoList
- generalSpecification
- name
- specifications
- value
- isEditable
- characteristic
GET /v1/lifecell/profile?msisdn=380630000001&token=lc-sess-7c11e2b9&languageId=uk HTTP/1.1 Authorization: Bearer lc-sess-7c11e2b9{ "responseCode": 0, "resultText": "OK", "clientInfoList": [ { "generalSpecification": [ { "name": "Personal", "specifications": [ {"name": "email", "value": "[email protected]", "isEditable": true, "characteristic": []}, {"name": "language", "value": "uk", "isEditable": true, "characteristic": []} ] } ] } ] }Read multi-account hierarchy
GET
/v1/lifecell/familyopendataReturns the family/multi-SIM tree: hierarchyType, master MSISDN, caps maxLineCurator/maxLineMultiaccount, and each slave line's msisdn plus attributes.
Auth: Session query map on the mobile API: msisdn, token (from bootstrap or SSO), deviceId, languageId, accessKeyCode, signature and UUID. JSON-annotated calls may also send Authorization: Bearer <token>.
- hierarchyType
- master
- maxLineCurator
- maxLineMultiaccount
- multiaccountLines
- lines
- msisdn
- attributes
GET /v1/lifecell/family?msisdn=380630000001&token=lc-sess-7c11e2b9 HTTP/1.1 Authorization: Bearer lc-sess-7c11e2b9{ "responseCode": 0, "resultText": "OK", "hierarchyType": "FAMILY", "master": "380630000001", "maxLineCurator": 1, "maxLineMultiaccount": 5, "multiaccountLines": { "lines": [ { "msisdn": "380630000002", "attributes": [{"name": "role", "value": "slave"}] }, { "msisdn": "380630000003", "attributes": [{"name": "role", "value": "slave"}] } ] } }Fetch Diia registration client data
GET
/v1/lifecell/kyc/diiaosintCopies the Diia-sourced legal identity used to register or re-identify a line: given name, surname, patronymic, taxCode, passportCode/passportType, email, addressUsual and tokenRegistration.
Auth: Header map on the mobile API: Authorization: Bearer <token> from bootstrap or SSO, plus deviceId / languageId as required. Query token+msisdn is used on XML calls.
- name
- surname
- fathername
- taxCode
- passportCode
- passportType
- addressUsual
- tokenRegistration
GET /v1/lifecell/kyc/diia HTTP/1.1 Authorization: Bearer lc-sess-7c11e2b9{ "responseCode": 0, "resultText": "OK", "name": "Olena", "surname": "Kovalenko", "fathername": "Ivanivna", "taxCode": "1234567890", "passportCode": "001234567", "passportType": "ID", "email": "[email protected]", "addressUsual": "Kyiv, Khreshchatyk 1", "tokenRegistration": "diia-reg-7c11" }Issue eSIM QR and activation link
POST
/v1/lifecell/esimopendataIssues the eSIM LPA qrCode and activationLink the phone uses to download the carrier profile after an eSIM order or number activation.
Auth: Header map with Authorization: Bearer <token>. Content-Type: application/xml;charset=UTF-8. Returns the LPA QR and activationLink for the current or newly ordered profile.
- qrCode
- activationLink
- responseCode
- resultText
POST /v1/lifecell/esim HTTP/1.1 Authorization: Bearer lc-sess-7c11e2b9 Content-Type: application/xml;charset=UTF-8{ "responseCode": 0, "resultText": "OK", "qrCode": "LPA:1$smdp.example$matching-id-8f21", "activationLink": "/activate?code=matching-id-8f21" }Read roaming info groups
GET
/v1/lifecell/roamingopendataReturns RLAH roaming groups for the signed-in line: title/code, actionCode/actionName/actionValue, priority and per-segment allowances.
Auth: Header map on the mobile API: Authorization: Bearer <token> from bootstrap or SSO, plus deviceId / languageId as required. Query token+msisdn is used on XML calls.
- uuid
- roamingInfo
- title
- code
- actionCode
- actionName
- actionValue
- priority
- segments
GET /v1/lifecell/roaming HTTP/1.1 Authorization: Bearer lc-sess-7c11e2b9{ "uuid": "550e8400-e29b-41d4-a716-446655440000", "roamingInfo": [ { "title": "EU RLAH", "code": "EU", "actionCode": "ENABLE", "actionName": "Roam like at home", "actionValue": "ON", "priority": 1, "segments": [{"name": "data", "value": "12 GB"}] } ] }
Data categories
- balances
- tariffs
- credit-limit
- charges
- top-up
- autopay
- profile
- multi-account
- ekyc
- esim
- roaming
- auth-sessions
Where teams use this data
Prepaid wallet and credit-limit recon
Finance bots pull balanceDetails amount/measure per code alongside creditLimit, availableCL and currentMainBalance so a lending or wallet stack can see remaining airtime versus the open credit line before a top-up.
Family-plan billing
A household or SME admin maps master plus slave msisdn rows from the multi-account hierarchy to charge-group accountTotal / parentGroupDesc so shared-plan invoices can be split per line.
Diia eKYC back-office
Onboarding desks consume taxCode, passportCode, surname and addressUsual from the Diia client payload to pre-fill SIM-registration forms instead of re-keying government ID.
Roaming cost control
Travel dashboards read RLAH roamingInfo actionCode, title and segment allowances next to the home tariffPriceFull so a company can warn staff before they leave the EU roam-like-at-home zone.
Frequently asked questions
Which identifiers does a My lifecell session bind to a line?
SSO returns token, subId, msisdn, uniqId and the isOMO flag; later calls also send deviceId and UUID. The summary record repeats msisdn next to accessGroupCode and contract.activationDate.
How is remaining airtime represented versus a credit limit?
Home tiles read balanceDetails amount/measure per code (including Counter_Free_MonthlyFee). The credit product is a separate JSON object with creditLimit, availableCL, currentMainBalance, feeCL and dateEndCL.
What identity fields come from Diia?
The registration client payload copies name, surname, fathername, taxCode, passportCode, passportType, email, addressUsual and tokenRegistration for SIM registration and re-identification.
How are extra family numbers modelled?
The multi-account hierarchy names a master MSISDN, hierarchyType, caps maxLineCurator and maxLineMultiaccount, and lists slave lines each with msisdn and attributes.
Apps similar to My lifecell
- My Kyivstar — My Kyivstar is Kyivstar's official self-care app for managing a Ukrainian mobile number and account, including in-app top-up and bill details, from the operator that Wikipedia lists alongside Vodafone Ukraine as lifecell's main rival.
- My Vodafone UA — My Vodafone UA is Vodafone Ukraine's self-care app for checking balance, topping up, and managing tariffs, calls, internet, eSIM and bonuses on the country's second-largest mobile network.
- Azercell — Azercell is the Azerbaijani mobile operator's self-care app for taking full control of a subscriber number from any location.
- Asiacell — Asiacell is the Iraqi operator's self-care app for managing Asiacell, YOOZ and Elite lines from anywhere.
- hambi (Beeline Uzbekistan) — hambi is Beeline Uzbekistan's super-app that groups the operator's subscriber services in one client.
- Turkcell — Turkcell is the Turkish operator's app for subscriber transactions and technology shopping; Turkcell previously held a stake in Ukraine's lifecell.
- Mi Movistar Chile — Mi Movistar Chile is Telefónica Chile's carrier self-care app for benefits, exclusive offers and subscriber support.
Topics
- my lifecell api
- lifecell balanceDetails
- lifecell creditLimit
- lifecell msisdn
- ukraine telecom data
- diia taxCode
- esim qrCode
- lifecell autopay cardMask
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