VssID data API: BHXH book, BHYT card and benefits
VssID is the official self-care app of Vietnam Social Security (Bảo hiểm xã hội Việt Nam), the agency that runs the country's social-insurance and health-insurance schemes. Citizens sign in with a BHXH account or through VNeID, then open an electronic social-insurance book, a digital BHYT health card with a scannable QR, contribution history, benefit-regime status and a social-insurance wallet that can cash in through partner banks such as BIDV. The same client files administrative procedures with an SMS OTP, looks up nearby social-security offices on a map, and keeps hospital and province catalogs for registered care. It serves workers, pensioners and dependants across Vietnam, sitting next to VNeID as the identity rail and competing with hospital-issued paper cards at the clinic counter.
Every signed-in VssID citizen maps onto a Vietnam Social Security ledger keyed by maBhxh and a health-insurance card maTheBhyt. The session itself carries an OAuth access_token issued after BHXH login or a VNeID code exchange, plus identity fields hoTen, ngaySinh, gioiTinh and soCMND. The health-card record adds ngayHieuLuc, ngayHetHan and a QR payload; the electronic book lists contribution rows with namDong, thangDong and mucDong; benefit regimes return under cheDoHuong; the SS-wallet exposes soTien next to a linked bank account.
Hospital visits page by year as KCB rows; the catalog returns maTinh, maHuyen and hospital codes maBV / tenBV; administrative filings confirm with an SMS otp; cash-in through BIDV records requestId amounts against the live wallet balance.
Clinic intake teams confirm a live BHYT card from the QR, payroll desks match contribution months to the agency book, benefits-payment agents top up only known wallets, and kiosk staff quote the right province before a dossier goes in — and openData Studio turns that social-insurance 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.
Sign in with a BHXH account
POST
/v1/auth/dvcosintSigns a citizen into VssID with a Vietnam Social Security account and returns the access_token, maBhxh and identity fields used by later book and card calls.
Auth: Unauthenticated. Body is the BHXH username/password. The returned access_token is attached on later calls.
- username
- password
- access_token
- maBhxh
- hoTen
- soCMND
POST /v1/auth/dvc HTTP/1.1 Content-Type: application/json { "username": "0123456789", "password": "********" }{ "access_token": "eyJhbGciOiJIUzI1NiJ9.example", "maBhxh": "7912345678", "hoTen": "Nguyen Van An", "soCMND": "079123456789" }Exchange a VNeID OAuth code
GET
/v1/auth/vneid-codeosintExchanges a VNeID authorization code for the VssID access_token used as the citizen session.
Auth: Unauthenticated OAuth redirect. Query carries code from VNeID (client_id=vssid). Returns access_token.
- code
- client_id
- redirect_uri
- response_type
- access_token
- token_type
- maBhxh
GET /v1/auth/vneid-code?code=spl_abc123&client_id=vssid HTTP/1.1{ "access_token": "eyJhbGciOiJIUzI1NiJ9.example", "token_type": "Bearer", "maBhxh": "7912345678" }Read electronic BHXH book
GET
/v1/ss-bookopendataReturns the signed-in citizen's electronic social-insurance book: maBhxh, legal name, date of birth, gender, ID number and address shown on the e-book screen.
Auth: Session access_token from POST /v1/auth/dvc or the VNeID code exchange, sent on later first-party calls.
- maBhxh
- hoTen
- ngaySinh
- gioiTinh
- soCMND
- diaChi
GET /v1/ss-book HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "maBhxh": "7912345678", "hoTen": "Nguyen Van An", "ngaySinh": "1990-04-12", "gioiTinh": "Nam", "soCMND": "079123456789", "diaChi": "Q.1, TP.HCM" }Read BHYT health-insurance card
GET
/v1/health-cardopendataReturns the digital BHYT card shown in the app: card number, holder identity, validity window and registered hospital used at clinic intake.
Auth: Session access_token from POST /v1/auth/dvc or the VNeID code exchange, sent on later first-party calls.
- maTheBhyt
- hoTen
- ngaySinh
- gioiTinh
- ngayHieuLuc
- ngayHetHan
- noiKham
GET /v1/health-card HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "maTheBhyt": "DN4791234567890", "hoTen": "Nguyen Van An", "ngaySinh": "1990-04-12", "gioiTinh": "Nam", "ngayHieuLuc": "2026-01-01", "ngayHetHan": "2026-12-31", "noiKham": "BV Cho Ray" }Read BHYT card QR payload
GET
/v1/health-card/qropendataReturns the scannable QR payload for the live BHYT card, used by clinic intake instead of a paper card.
Auth: Session access_token from POST /v1/auth/dvc or the VNeID code exchange, sent on later first-party calls.
- maTheBhyt
- qr
- hoTen
GET /v1/health-card/qr HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "maTheBhyt": "DN4791234567890", "qr": "DN4791234567890|Nguyen Van An|19900412|1|20260101-20261231", "hoTen": "Nguyen Van An" }Page contribution history
GET
/v1/contributions/historyopendataPages the citizen's social-insurance contribution history (quaTrinh): year, month, contribution amount and employer, from the contribution screens.
Auth: Session access_token from POST /v1/auth/dvc or the VNeID code exchange, sent on later first-party calls.
- quaTrinh
- namDong
- thangDong
- mucDong
- donVi
GET /v1/contributions/history HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "quaTrinh": [ { "namDong": 2026, "thangDong": 9, "mucDong": 4680000, "donVi": "Cong ty TNHH ABC" } ] }Read benefit-regime entitlements
GET
/v1/benefits/entitlementsopendataReturns social-insurance benefit regimes the citizen currently holds (cheDoHuong): regime code, name, status and amount shown on the benefits screen.
Auth: Session access_token from POST /v1/auth/dvc or the VNeID code exchange, sent on later first-party calls.
- cheDoHuong
- maCheDo
- tenCheDo
- trangThai
- soTien
GET /v1/benefits/entitlements HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "cheDoHuong": [ { "maCheDo": "OM_DAU", "tenCheDo": "Om dau", "trangThai": "DANG_HUONG", "soTien": 3500000 } ] }Read SS-wallet account
GET
/v1/ss-wallet/accountopenbankingReturns the linked social-insurance wallet account: bank, masked account number, holder name and LINKED status used before cash-in.
Auth: Session access_token from POST /v1/auth/dvc or the VNeID code exchange, sent on later first-party calls.
- accountNo
- bankCode
- hoTen
- status
GET /v1/ss-wallet/account HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "accountNo": "970418xxxxxx1234", "bankCode": "BIDV", "hoTen": "Nguyen Van An", "status": "LINKED" }Read SS-wallet balance
GET
/v1/ss-wallet/balanceopenbankingReturns the live SS-wallet soTien in VND shown on the wallet home before cash-in or cash-out.
Auth: Session access_token from POST /v1/auth/dvc or the VNeID code exchange, sent on later first-party calls.
- soTien
- currency
GET /v1/ss-wallet/balance HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "soTien": 1250000, "currency": "VND" }Start SS-wallet cash-in
POST
/v1/ss-wallet/cash-inopenfinanceStarts a BIDV (or other linked-bank) cash-in into the SS-wallet and returns requestId plus fee so the citizen can confirm with a bank OTP.
Auth: Session access_token from POST /v1/auth/dvc or the VNeID code exchange, sent on later first-party calls. Completing the top-up uses a bank-OTP confirm step.
- soTien
- bankCode
- requestId
- fee
- status
POST /v1/ss-wallet/cash-in HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "soTien": 500000, "bankCode": "BIDV" }{ "requestId": "ci-9c21e4", "soTien": 500000, "fee": 0, "status": "PENDING_OTP" }Send procedure-filing OTP
POST
/v1/procedures/otposintSends the SMS OTP that confirms an administrative filing before the dossier is submitted.
Auth: Session access_token from POST /v1/auth/dvc or the VNeID code exchange, sent on later first-party calls.
- thuTucId
- soDienThoai
- otpRequestId
- status
POST /v1/procedures/otp HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "thuTucId": "GDDT_653", "soDienThoai": "0901234567" }{ "otpRequestId": "otp-8f21a4", "status": "SENT" }Page hospital visits by year
GET
/v1/visits/by-yearopendataPages the citizen's KCB (medical-visit) history for a year: visit date, hospital, diagnosis and amount.
Auth: Session access_token from POST /v1/auth/dvc or the VNeID code exchange, sent on later first-party calls. Query: year.
- year
- visits
- ngayKham
- benhVien
- chanDoan
- soTien
GET /v1/visits/by-year?year=2026 HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "year": 2026, "visits": [ { "ngayKham": "2026-09-12", "benhVien": "BV Cho Ray", "chanDoan": "Kham tong quat", "soTien": 180000 } ] }List provinces and hospitals
GET
/v1/catalog/provincesopendataReturns the administrative catalog used by lookup and filing screens: provinces, districts and hospitals.
Auth: Session access_token from POST /v1/auth/dvc or the VNeID code exchange, sent on later first-party calls.
- tinh
- maTinh
- tenTinh
- huyen
- maHuyen
- tenHuyen
- benhVien
- maBV
- tenBV
GET /v1/catalog/provinces HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "tinh": [{"maTinh": "79", "tenTinh": "TP. Ho Chi Minh"}], "huyen": [{"maHuyen": "760", "tenHuyen": "Quan 1"}], "benhVien": [{"maBV": "79001", "tenBV": "BV Cho Ray"}] }Read BHYT card-renewal quote
GET
/v1/payments/card-renewalopenfinanceReturns the quote to renew the BHYT card: amount due, current expiry and term, used before the in-app payment.
Auth: Session access_token from POST /v1/auth/dvc or the VNeID code exchange, sent on later first-party calls.
- maTheBhyt
- soTien
- ngayHetHan
- kyHan
GET /v1/payments/card-renewal HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "maTheBhyt": "DN4791234567890", "soTien": 804600, "ngayHetHan": "2026-12-31", "kyHan": "12T" }
Data categories
- identity
- health-card
- contributions
- benefits
- wallet
- procedures
- catalog
Where teams use this data
Clinic eligibility check at intake
Hospital front desks read GET /v1/health-card (maTheBhyt, hoTen, ngaySinh, ngayHetHan) and GET /v1/health-card/qr so a scanned QR confirms the live BHYT card before the visit is opened, instead of relying on a paper card that may already have expired.
Contribution and benefit reconciliation
Payroll or union tooling pulls GET /v1/ss-book (maBhxh, hoTen) plus GET /v1/contributions/history (namDong, thangDong, mucDong) and GET /v1/benefits/entitlements so HR can match declared months and benefit regimes against the agency ledger.
SS-wallet cash-in desk
A benefits-payment console reads GET /v1/ss-wallet/account and GET /v1/ss-wallet/balance then posts POST /v1/ss-wallet/cash-in so agents only top up a wallet whose soTien and linked BIDV account are already known.
Procedure OTP and hospital catalog
Citizen-service kiosks send POST /v1/procedures/otp for administrative filings and join GET /v1/catalog/provinces with GET /v1/visits/by-year so staff can quote the right province and last-year KCB visits before the dossier is submitted.
Frequently asked questions
How does VssID authenticate citizen API calls?
POST /v1/auth/dvc signs in with a BHXH account. GET /v1/auth/vneid-code exchanges a VNeID OAuth code (client_id=vssid) for an access_token. Later calls send that token on first-party routes.
Which endpoints expose the BHXH book and BHYT card?
GET /v1/ss-book returns the electronic social-insurance book (maBhxh, hoTen). GET /v1/health-card returns the BHYT card (maTheBhyt, ngayHieuLuc, ngayHetHan). GET /v1/health-card/qr returns the scannable QR used at clinic intake. GET /v1/contributions/history pages namDong, thangDong and mucDong.
What is the VssID social-insurance wallet?
GET /v1/ss-wallet/account and GET /v1/ss-wallet/balance return the linked account and soTien. POST /v1/ss-wallet/cash-in starts a BIDV cash-in and returns requestId plus fee. Completing the top-up uses the bank OTP confirm step.
Can the VssID API see benefit regimes and hospital visits?
Yes. GET /v1/benefits/entitlements returns cheDoHuong. GET /v1/visits/by-year pages KCB visits. GET /v1/catalog/provinces lists maTinh / maHuyen / hospitals. POST /v1/procedures/otp confirms administrative filings.
Apps similar to VssID
- VNeID — VNeID is Vietnam's national digital-identity app from the Ministry of Public Security: citizens use it as the eID wallet and as an SSO rail that VssID consumes via OAuth.
- DigiLocker — DigiLocker is India's government document wallet where citizens store issued IDs and certificates on the phone, in the same class as VssID's electronic BHXH book and BHYT card.
- Pak Identity — Pak Identity is NADRA's citizen-identity app for CNIC documents, a digital ID vault and family records — a South-Asian analogue of VssID's insurance-identity wallet.
- Налоги ФЛ — Налоги ФЛ is Russia's Federal Tax Service cabinet for individual taxpayers, another national-agency self-care app that signs in through a government identity rail.
Topics
- vssid api
- vssid data api
- vietnam social security api
- bhxh api
- bhyt card api
- vssid wallet
- vssid contribution history
- vneid vssid
- bao hiem xa hoi viet nam 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