Mi Movistar Chile data API: boletas, saldo, visits
Mi Movistar Chile is Telefónica Chile's official self-care app (on-device label Mi Movistar) for prepaid and postpaid mobile lines plus fibre and home packs. After sign-in — SMS code, partner login or the phone's biometrics — the home screen opens on Chilean-peso boletas, prepaid saldo, postpaid deuda, the live plan and extra lines under the same RUT. Users pay or top up, book or cancel technician visits, follow fibre and handset orders, open help tickets and keep saved cards. It serves Movistar Chile subscribers nationwide, sitting next to Entel, Claro and WOM in the same carrier self-care slot.
Chilean postpaid boletas carry fechaEmision, fechaVencimiento, montoTotal and montoPendiente on the billing cicloFacturacion, while prepaid wallets expose saldo and saldoMonetario against postpaid deuda / deuda_pendiente. The session is an OpenID access_token with refresh_token, id_token and expires_in after a PKCE exchange (grant_type, client_id, code_verifier). The holder profile keys on rutCliente, nombreCliente, numeroCliente and customerId, with extra lines as linea / Telefono / msisdn.
Technician visits book under apptNumber and horario; product orders return orderId, productId and offeringId; tickets carry a status; biometric enrolment and an SMS otp sit on the same Bearer session.
Finance ops reconcile CLP boletas before the due date, field teams fill leftover visit slots, order desks watch fibre and handset deliveries, and retail staff quote saldo next to deuda — 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.
Exchange OpenID authorization code for tokens
POST
/v1/movistar/loginosintExchanges an OpenID authorization code plus PKCE code_verifier for access_token, refresh_token, id_token and expires_in used by later first-party calls.
Auth: Unauthenticated. Body is grant_type=authorization_code, client_id, code and PKCE code_verifier. Content-Type application/json.
- grant_type
- client_id
- code
- code_verifier
- access_token
- refresh_token
- id_token
- expires_in
- token_type
POST /v1/movistar/login HTTP/1.1 Content-Type: application/json { "grant_type": "authorization_code", "client_id": "movistar-app", "code": "splitted-auth-code", "code_verifier": "pkce-verifier" }{ "access_token": "eyJhbGciOi...", "refresh_token": "rt-8f21a4c2", "id_token": "eyJhbGciOi...", "expires_in": 3600, "token_type": "Bearer" }List postpaid boletas
GET
/v1/movistar/invoicesopendataReturns the signed-in line's postpaid boletas with billing cycle, issue and due dates and CLP amounts.
Auth: Authorization: Bearer access_token from POST /v1/movistar/login.
- boletas
- cicloFacturacion
- fechaEmision
- fechaVencimiento
- montoTotal
- montoPendiente
- monto
- boleta
GET /v1/movistar/invoices HTTP/1.1 Authorization: Bearer eyJhbGciOi... Accept: application/json{ "boletas": [ { "cicloFacturacion": "202609", "fechaEmision": "2026-09-01", "fechaVencimiento": "2026-09-15", "montoTotal": 24990, "montoPendiente": 24990, "monto": 24990, "boleta": "B-202609-01" } ] }Resolve a boleta download link
GET
/v1/movistar/invoice-linkopendataResolves the downloadable boleta for a billing cycle so the bill screen can open the PDF next to fechaVencimiento and montoTotal.
Auth: Authorization: Bearer access_token from POST /v1/movistar/login. Query cicloFacturacion selects the bill.
- cicloFacturacion
- fechaEmision
- fechaVencimiento
- montoTotal
- status
GET /v1/movistar/invoice-link?cicloFacturacion=202609 HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "cicloFacturacion": "202609", "fechaEmision": "2026-09-01", "fechaVencimiento": "2026-09-15", "montoTotal": 24990, "status": "READY" }Read prepaid saldo
GET
/v1/movistar/balanceopendataReturns prepaid CLP saldo and saldoMonetario for the line in context, plus any expired remainder and a suggested recharge amount.
Auth: Authorization: Bearer access_token from POST /v1/movistar/login.
- saldo
- saldoMonetario
- saldoExpirado
- montoSaldoRecargar
- linea
GET /v1/movistar/balance HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "saldo": 12500, "saldoMonetario": 12500, "saldoExpirado": 0, "montoSaldoRecargar": 3000, "linea": "56987654321" }Read postpaid deuda
GET
/v1/movistar/debtsopendataReturns postpaid deuda and deuda_pendiente in CLP for the Telefono in context, the amount the pay-bill screen collects.
Auth: Authorization: Bearer access_token from POST /v1/movistar/login.
- deuda
- deuda_pendiente
- montoPendiente
- Telefono
GET /v1/movistar/debts HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "deuda": 24990, "deuda_pendiente": 24990, "montoPendiente": 24990, "Telefono": "56987654321" }Read holder profile
GET
/v1/movistar/profileosintLoads the authenticated holder: Chilean RUT, legal name, customer numbers and the mobile linea / msisdn in context.
Auth: Authorization: Bearer access_token from POST /v1/movistar/login.
- rutCliente
- nombreCliente
- numeroCliente
- customerId
- customerIdentification
- accountId
- linea
- msisdn
GET /v1/movistar/profile HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "rutCliente": "12345678-5", "nombreCliente": "Camila Rojas", "numeroCliente": "10028471", "customerId": "10028471", "customerIdentification": "12345678-5", "accountId": "ACC-88421", "email": "[email protected]", "linea": "56987654321", "msisdn": "56987654321" }List technician visit slots
GET
/v1/movistar/visitsopendataReturns bookable technician visit slots with apptNumber and horario for fibre or in-home repair windows.
Auth: Authorization: Bearer access_token from POST /v1/movistar/login.
- slots
- apptNumber
- horario
- schedule
GET /v1/movistar/visits HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "slots": [ { "apptNumber": "APT-44019", "horario": "2026-10-08T09:00:00-03:00", "schedule": "AM" } ] }Book a technician visit
POST
/v1/movistar/visitsopendataBooks the chosen technician slot so the visit screen can show SCHEDULED against apptNumber.
Auth: Authorization: Bearer access_token from POST /v1/movistar/login. Body carries the chosen apptNumber and horario.
- apptNumber
- horario
- status
POST /v1/movistar/visits HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "apptNumber": "APT-44019", "horario": "2026-10-08T09:00:00-03:00" }{ "apptNumber": "APT-44019", "horario": "2026-10-08T09:00:00-03:00", "status": "SCHEDULED" }Cancel a technician visit
POST
/v1/movistar/visits/cancelopendataCancels a previously booked technician visit identified by apptNumber.
Auth: Authorization: Bearer access_token from POST /v1/movistar/login. Body (or query) carries apptNumber of the booked visit.
- apptNumber
- status
POST /v1/movistar/visits/cancel HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "apptNumber": "APT-44019" }{ "apptNumber": "APT-44019", "status": "CANCELLED" }Read product order status
GET
/v1/movistar/ordersopendataReturns fibre / handset product-order status for the signed-in msisdn: orderId, productId, offeringId and status.
Auth: Authorization: Bearer access_token from POST /v1/movistar/login.
- orderId
- productId
- offeringId
- msisdn
- status
GET /v1/movistar/orders HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "orderId": "ORD-338821", "productId": "FIBRA-600", "offeringId": "OFF-HOGAR-01", "msisdn": "56987654321", "status": "IN_PROGRESS" }List service tickets
GET
/v1/movistar/ticketsopendataLists open service tickets for the line so the help screen can show ticket id and status.
Auth: Authorization: Bearer access_token from POST /v1/movistar/login.
- tickets
- ticket
- status
GET /v1/movistar/tickets HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "tickets": [ { "ticket": "TKT-90211", "status": "OPEN" } ] }Send login or step-up SMS code
POST
/v1/movistar/otposintSends an SMS otp to the Chilean msisdn / linea used by login or a step-up challenge.
Auth: May be unauthenticated at first factor, or Bearer for a step-up. Body identifies the linea / msisdn.
- msisdn
- linea
- status
- otp
POST /v1/movistar/otp HTTP/1.1 Content-Type: application/json { "msisdn": "56987654321", "linea": "56987654321" }{ "status": "SENT", "otp": true }Enrol device biometrics
POST
/v1/movistar/biometric/enrolosintEnrols device biometrics for the signed-in customerId so later launches can verify instead of repeating SMS.
Auth: Authorization: Bearer access_token from POST /v1/movistar/login.
- customerId
- status
POST /v1/movistar/biometric/enrol HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "customerId": "10028471" }{ "status": "ENROLLED", "customerId": "10028471" }Verify device biometrics
POST
/v1/movistar/biometric/verifyosintVerifies the enrolled device biometric and may mint a fresh access_token for the customerId.
Auth: Device biometric assertion plus optional Bearer. Body identifies customerId.
- customerId
- status
- access_token
- expires_in
POST /v1/movistar/biometric/verify HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "customerId": "10028471" }{ "status": "VERIFIED", "access_token": "eyJhbGciOi...", "expires_in": 3600 }
Data categories
- invoices
- balances
- debts
- profile
- technician-visits
- product-orders
- tickets
- auth-sessions
Where teams use this data
CLP boleta and deuda reconciliation
Nightly jobs pull GET /v1/movistar/invoices for cicloFacturacion, fechaVencimiento, montoTotal and montoPendiente, then GET /v1/movistar/debts for deuda versus GET /v1/movistar/balance saldo so finance can match Chilean-peso ledgers before the due date.
Technician-visit desk
Field ops read GET /v1/movistar/visits (apptNumber, horario) and POST /v1/movistar/visits to fill leftover fibre or repair windows, with POST /v1/movistar/visits/cancel when a slot is released.
Fibre and handset order tracking
Order desks poll GET /v1/movistar/orders for orderId, productId, offeringId and status next to GET /v1/movistar/tickets so a stalled delivery and an open ticket sit on the same board.
RUT-keyed holder into a Bearer session
Retail kiosks POST /v1/movistar/login (grant_type, code_verifier) then GET /v1/movistar/profile for rutCliente, nombreCliente and linea, with POST /v1/movistar/biometric/enrol so the next launch verifies on-device instead of another SMS.
Frequently asked questions
How does Mi Movistar authenticate subscriber API calls?
POST /v1/movistar/login exchanges an authorization code plus PKCE code_verifier (grant_type, client_id) for access_token, refresh_token, id_token and expires_in. Later calls send Authorization: Bearer. POST /v1/movistar/otp sends the SMS code; POST /v1/movistar/biometric/enrol and POST /v1/movistar/biometric/verify enrol and unlock on-device biometrics on the same session.
Which endpoints expose boletas, saldo and deuda?
GET /v1/movistar/invoices returns cicloFacturacion, fechaEmision, fechaVencimiento, montoTotal and montoPendiente. GET /v1/movistar/invoice-link resolves the downloadable bill. GET /v1/movistar/balance returns prepaid saldo and saldoMonetario. GET /v1/movistar/debts returns postpaid deuda and deuda_pendiente for the Telefono in context.
How are technician visits booked?
GET /v1/movistar/visits lists slots with apptNumber, horario and schedule. POST /v1/movistar/visits books the chosen slot. POST /v1/movistar/visits/cancel releases it by apptNumber.
Can the API see the holder RUT, orders and tickets?
Yes. GET /v1/movistar/profile returns rutCliente, nombreCliente, numeroCliente, customerId, email and linea. GET /v1/movistar/orders returns orderId, productId, offeringId and status. GET /v1/movistar/tickets lists ticket id and status.
Apps similar to Mi Movistar Chile
- Mi Entel — Mi Entel is Entel Chile's official self-care app: subscribers check mobile and home-plan balances, pay bills and manage extra lines from the phone.
- Mi Claro Chile — Mi Claro is Claro Chile's subscriber app for prepaid and postpaid lines, covering saldo, boletas and pack changes.
- WOM Chile — WOM is a Chilean mobile operator's self-care app for prepaid and postpaid subscribers: remaining credit, packs and bill pay.
- Azercell — Azercell is Azercell Telekom MMC's official self-care app for Azerbaijani prepaid and postpaid lines: manat buckets, invoices and SimKredit.
- Asiacell — Asiacell is ASIACELL COMMUNICATIONS PJSC's official self-care app for Iraqi prepaid and postpaid subscribers: home balances, usage and top-up.
- hambi (Beeline Uzbekistan) — hambi is Beeline Uzbekistan's self-care app from UNITEL, combining core balance, traffic buckets and family sub-accounts.
- My DishTV — My DishTV is Dish TV India's subscriber app for DTH packs, recharge and invoices — another operator self-care surface in the catalog.
Topics
- mi movistar api
- mi movistar chile data api
- movistar chile boleta
- fechaVencimiento saldo deuda
- rutCliente movistar
- apptNumber visita tecnica
- chile telecom api
- movistar chile self-care
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