Sahl 数据 API:账单、NFC 电表与钱包
Sahl سهل - Payments Made Easy 是 EgyptPay 面向埃及消费者的缴费与预付费电表应用,也是 Globaltronics / EgyptPay 为仍在 kiosk 网点给电、水、燃气卡充值的家庭推出的 NFC 充电客户端。用手机号和密码登录(同样接入了 Google、Facebook 和 Apple)后,首页网格覆盖五十多项埃及服务:预付费与后付费电费,包括埃及电力控股公司(Egyptian Electricity Holding Company)电表以及 Elsewedy、Korra、Taqa、Prime Energy 和 Travco 的 NFC 电卡;预付费与后付费水费;燃气;手机充值与后付费;固话;电视;捐款;大学学费;游戏点卡;保险;工会会费;税费;俱乐部;小额信贷;分期;司法部(Ministry of Justice)缴款;以及 GoBus / Blue Bus 车票。用户可以用 Visa、Mastercard 或 Meeza 卡、Meeza 钱包、Valu 分期、InstaPay 或应用内 Sahl Balance 付款,随后保留收据和预付费用量图表;零售商模式为代客收款的店主镜像同一目录。Play 商店页面给出 4.7 星、约 302,000 条评分,下载量超过 500 万,位列埃及免费金融应用前列。客服邮箱为 [email protected],电话 0235372501;EgyptPay 还在 KYC 后发行可领取的 Sahl Card(CBE / Visa)。界面语言为阿拉伯语和英语。在市场上它与 Fawry、Bee 以及 Vodafone、Orange 和 e& Egypt 的自助应用并列。
预付费电表的 units 和后付费账单的 totalAmount 由同一个账单查询载荷返回,键为 serviceCode、cardId 和 companyId;当电表仍欠配电公司款项时还会带 debtsAmount。随后一次刷卡给出剩余 balance 和按 month、year 逐月的 units 序列,履约时返回会写回卡片的 cardPayLoad。
无论由哪条通道结算——InstaPay、Meeza、Valu、银行卡还是应用内钱包余额——结账都会把 orderId、transactionId、fees、serviceFees 和 paymentStatus 盖到一张埃及镑收据上。公用事业对账团队、家庭理财应用和小额信贷机构拉取这些收据与电表历史,核对 kiosk 与 NFC 充值、绘制家庭支出图表并评估分期额度;openData Studio 把同样这些字段变成可调用的开放数据。
应用截图
API 端点一览
以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。
手机号登录
POST
/v1/auth/sessionsosint用注册的埃及手机号和密码换取 accessToken、refreshToken 以及 customerId——它们是后续所有账单、NFC 和钱包调用的门槛。
认证方式: 无需鉴权。请求体为 phoneNumber 和 password;响应中的 accessToken 在后续调用中作为 Authorization: Bearer 发送,refreshToken 用于续期。
- phoneNumber
- password
- deviceId
- accessToken
- refreshToken
- customerId
- userId
- fullName
- locale
- success
POST /v1/auth/sessions HTTP/1.1 Content-Type: application/json { "phoneNumber": "01012345678", "password": "********", "deviceId": "android-udid-9f3a" }{ "success": true, "accessToken": "<access-token>", "refreshToken": "rt-sahl-7c21", "customerId": "cust-88421", "userId": "usr-10482", "fullName": "Mona Said", "phoneNumber": "01012345678", "email": "[email protected]", "locale": "ar" }账单与充值查询
POST
/v1/billers/quotesopendata查询目录中任一服务的应付金额或可充额度——预付费/后付费电、水、燃气、手机、固话、捐款、教育、税费、工会、俱乐部、小额信贷、保险——以埃及镑返回总额、费用和电表欠费。
认证方式: Authorization: Bearer 使用 POST /v1/auth/sessions 返回的 accessToken,外加 deviceId。
- serviceCode
- serviceName
- companyName
- companyId
- cardId
- accountNumber
- totalAmount
- fees
- serviceFees
- adminFees
- debtsAmount
- debtValueInEgp
- currency
- units
- bills
- billId
- amount
- issueDate
- success
POST /v1/billers/quotes HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "serviceCode": "ELECTRICITY_PREPAID", "cardId": "GT-889120045", "companyId": 12, "accountNumber": "314572891" }{ "success": true, "serviceCode": "ELECTRICITY_PREPAID", "serviceName": "Prepaid electricity", "companyName": "South Cairo Electricity", "companyId": 12, "cardId": "GT-889120045", "accountNumber": "314572891", "totalAmount": 250.0, "fees": 5.0, "serviceFees": 3.5, "adminFees": 1.5, "debtsAmount": 40.0, "debtValueInEgp": 40.0, "currency": "EGP", "units": 87.5, "bills": [{"billId": "b-4419", "amount": 250.0, "issueDate": "2026-10-01"}] }预付费电表用量历史
POST
/v1/meters/usageopendata返回剩余预付费额度,以及按月逐月的 units/amount 序列——它驱动电、水、燃气的用量图表。
认证方式: Authorization: Bearer 使用 POST /v1/auth/sessions 返回的 accessToken,外加 deviceId。
- serviceCode
- cardId
- companyId
- balance
- units
- currency
- month
- year
- amount
- success
POST /v1/meters/usage HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "serviceCode": "ELECTRICITY_PREPAID", "cardId": "GT-889120045", "companyId": 12 }{ "success": true, "cardId": "GT-889120045", "companyId": 12, "balance": 163.25, "units": 87.5, "currency": "EGP", "monthlyConsumptionData": [ {"month": 8, "year": 2026, "units": 92.0, "amount": 210.5}, {"month": 9, "year": 2026, "units": 87.5, "amount": 198.0} ] }NFC 卡余额查询
POST
/v1/cards/balance-checkopenbanking手机 NFC 刷卡后,经卡厂商的电表读卡服务读取 Globaltronics / Elsewedy 预付费电卡的剩余额度。
认证方式: 登录后的会话;请求体为设备上电表读卡器导出的 NFC 卡数据。
- cardId
- companyId
- vendorId
- payload
- balance
- units
- debtsAmount
- currency
- success
POST /v1/cards/balance-check HTTP/1.1 Content-Type: application/json { "cardId": "GT-889120045", "companyId": 12, "vendorId": "ELSEWEDY", "payload": "<nfc-card-bytes>" }{ "success": true, "cardId": "GT-889120045", "companyId": 12, "vendorId": "ELSEWEDY", "balance": 163.25, "units": 87.5, "debtsAmount": 0.0, "currency": "EGP" }NFC 卡读取
POST
/v1/cards/readopendata识别刷过的预付费卡——cardId、配电公司 companyId、厂商(Elsewedy / Korra / Taqa)和当前 units——为充值定价做准备。
认证方式: 登录后的会话;请求体为设备读卡器导出的原始 NFC 电表数据。
- payload
- deviceId
- cardId
- cardUUID
- companyId
- companyName
- vendorId
- units
- balance
- success
POST /v1/cards/read HTTP/1.1 Content-Type: application/json { "payload": "<nfc-card-bytes>", "deviceId": "android-udid-9f3a" }{ "success": true, "cardId": "GT-889120045", "cardUUID": "c9e1-44aa-91f0", "companyId": 12, "companyName": "South Cairo Electricity", "vendorId": "ELSEWEDY", "units": 87.5, "balance": 163.25 }创建支付订单
POST
/v1/orders/prepareopenfinance为查询过的账单或预付费充值开立结账订单,并在选择支付方式前返回应付的 totalAmount 和费用拆分。
认证方式: Authorization: Bearer 使用 POST /v1/auth/sessions 返回的 accessToken,外加 deviceId。
- serviceCode
- cardId
- amount
- totalAmount
- fees
- serviceFees
- adminFees
- currency
- orderId
- paymentStatus
- success
POST /v1/orders/prepare HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "serviceCode": "ELECTRICITY_PREPAID", "cardId": "GT-889120045", "amount": 250.0, "currency": "EGP" }{ "success": true, "orderId": "ord-220184", "totalAmount": 255.0, "amount": 250.0, "fees": 5.0, "serviceFees": 3.5, "adminFees": 1.5, "currency": "EGP", "paymentStatus": "PENDING" }订单结账
POST
/v1/orders/checkoutopenfinance通过 InstaPay、Meeza 钱包、银行卡、Valu 或 Sahl Balance 提交结账,返回 transactionId 以及用户必须确认的 paymentCode。
认证方式: Authorization: Bearer 使用 POST /v1/auth/sessions 返回的 accessToken,外加 deviceId。
- orderId
- transactionId
- paymentStatus
- totalAmount
- amount
- currency
- instapay
- paymentCode
- success
POST /v1/orders/checkout HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "orderId": "ord-220184", "paymentMethod": "INSTAPAY", "amount": 255.0, "currency": "EGP" }{ "success": true, "orderId": "ord-220184", "transactionId": "txn-918273", "paymentStatus": "PENDING_CONFIRMATION", "totalAmount": 255.0, "currency": "EGP", "instapay": {"paymentCode": "IPA-mona@bank"} }履约已支付订单
POST
/v1/orders/fulfilopenfinance履约已支付的预付费订单:返回设备上电表库写入电、水或燃气卡的 NFC cardPayLoad;当一笔充值仍在途时则标记 confirmDelivery。
认证方式: Authorization: Bearer 使用 POST /v1/auth/sessions 返回的 accessToken,外加 deviceId。
- orderId
- cardId
- cardPayLoad
- paymentStatus
- units
- balance
- confirmDelivery
- success
POST /v1/orders/fulfil HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "orderId": "ord-220184", "cardId": "GT-889120045", "cardPayLoad": "<nfc-write-bytes>" }{ "success": true, "orderId": "ord-220184", "paymentStatus": "PAID", "cardPayLoad": "<recharge-apdu>", "units": 175.0, "balance": 413.25, "confirmDelivery": false }订单收据搜索
POST
/v1/receipts/searchopenfinance分页拉取已登录客户的支付历史——即收据界面——可按 serviceCode 和日期过滤,逐笔订单返回总额、费用和 paymentStatus。
认证方式: Authorization: Bearer 使用 POST /v1/auth/sessions 返回的 accessToken,外加 deviceId。
- customerId
- serviceCode
- serviceName
- receiptId
- orderId
- transactionId
- totalAmount
- fees
- currency
- paymentStatus
- createdAt
- success
POST /v1/receipts/search HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "customerId": "cust-88421", "serviceCode": "ELECTRICITY_PREPAID", "fromDate": "2026-09-01", "toDate": "2026-10-20" }{ "success": true, "receipts": [ { "receiptId": "rcpt-77102", "orderId": "ord-220184", "transactionId": "txn-918273", "serviceCode": "ELECTRICITY_PREPAID", "serviceName": "Prepaid electricity", "totalAmount": 255.0, "fees": 5.0, "currency": "EGP", "paymentStatus": "PAID", "createdAt": "2026-10-18T19:04:11Z" } ] }按 ID 查询订单收据
POST
/v1/receipts/lookupopenfinance返回单笔订单的完整收据,包括费用拆分、电表/卡标识和 paymentStatus,供收据详情页使用。
认证方式: Authorization: Bearer 使用 POST /v1/auth/sessions 返回的 accessToken,外加 deviceId。
- receiptId
- orderId
- transactionId
- serviceCode
- totalAmount
- amount
- fees
- serviceFees
- adminFees
- currency
- paymentStatus
- createdAt
- accountNumber
- cardId
- success
POST /v1/receipts/lookup HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "orderId": "ord-220184" }{ "success": true, "receiptId": "rcpt-77102", "orderId": "ord-220184", "transactionId": "txn-918273", "serviceCode": "ELECTRICITY_PREPAID", "totalAmount": 255.0, "amount": 250.0, "fees": 5.0, "serviceFees": 3.5, "adminFees": 1.5, "currency": "EGP", "paymentStatus": "PAID", "createdAt": "2026-10-18T19:04:11Z", "accountNumber": "314572891", "cardId": "GT-889120045" }Sahl Balance 账户
GET
/v1/wallet/accountsopenbanking读取应用内 Sahl Balance 钱包,它既是一种支付方式,也是充值/提现(cash-in / cash-out)的目标账户。
认证方式: Authorization: Bearer 使用 POST /v1/auth/sessions 返回的 accessToken,外加 deviceId。
- customerId
- accountId
- accountNumber
- balance
- currency
- status
- success
GET /v1/wallet/accounts HTTP/1.1 Authorization: Bearer <accessToken>{ "success": true, "customerId": "cust-88421", "accountId": "bal-1001", "accountNumber": "SAHL-1001", "balance": 840.50, "currency": "EGP", "status": "ACTIVE" }储蓄基金余额
GET
/v1/savings/holdingsopenfinance返回 Sahl 储蓄 / WallStreet 基金的持仓——fundId、nav、units 以及按市值计价的埃及镑余额。
认证方式: Authorization: Bearer 使用 POST /v1/auth/sessions 返回的 accessToken,外加 deviceId。
- fundId
- nav
- units
- balance
- currency
- success
GET /v1/savings/holdings HTTP/1.1 Authorization: Bearer <accessToken>{ "success": true, "funds": [ { "fundId": "azimut-gold", "nav": 18.42, "units": 120.0, "balance": 2210.40, "currency": "EGP" } ] }付款码查询
POST
/v1/payment-codes/resolveopenfinance解析 Sahl Pay 商户付款码,让付款人在从钱包或银行卡付款前看到 totalAmount 和 codeStatus。
认证方式: Authorization: Bearer 使用 POST /v1/auth/sessions 返回的 accessToken,外加 deviceId。
- paymentCode
- codeValue
- codeStatus
- totalAmount
- currency
- serviceName
- description
- success
POST /v1/payment-codes/resolve HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "paymentCode": "SAHL-992811", "serviceCode": "SAHLPAY_ENQUIRE" }{ "success": true, "paymentCode": "SAHL-992811", "codeValue": "SAHL-992811", "codeStatus": "UNPAID", "totalAmount": 175.0, "currency": "EGP", "serviceName": "Merchant collect", "description": "Cafe bill" }银行卡支付扣款
POST
/v1/card-payments/chargeopenfinancescoped token 铸出后,通过卡收单网关扣款已保存的 Visa/Mastercard/Meeza 支付方式。
认证方式: 由单独的 scoped-token 调用铸出的支付域 accessToken,作为 Authorization: Bearer 发送。
- orderId
- amount
- currency
- cardId
- transactionId
- paymentStatus
- totalAmount
- success
POST /v1/card-payments/charge HTTP/1.1 Authorization: Bearer <payment-scoped-token> Content-Type: application/json { "orderId": "ord-220184", "amount": 255.0, "currency": "EGP", "cardId": "pm-visa-4411" }{ "success": true, "orderId": "ord-220184", "transactionId": "txn-918273", "paymentStatus": "PAID", "totalAmount": 255.0, "currency": "EGP" }Quick Pay 已保存服务
GET
/v1/saved-servicesopendata列出客户保存的 Quick Pay 电表、账单和捐款对象,让首页可以一键重新查询。
认证方式: Authorization: Bearer 使用 POST /v1/auth/sessions 返回的 accessToken,外加 deviceId。
- serviceCode
- serviceName
- cardId
- accountNumber
- companyName
- success
GET /v1/saved-services HTTP/1.1 Authorization: Bearer <accessToken>{ "success": true, "items": [ { "serviceCode": "ELECTRICITY_PREPAID", "serviceName": "Prepaid electricity", "cardId": "GT-889120045", "accountNumber": "314572891", "companyName": "South Cairo Electricity" } ] }
数据类别
- 账单
- 余额
- 交易
- 预付费电表
- 支付
- 收据
- 身份信息
数据使用场景与案例
配电公司预付费对账
一家配电公司把每夜的 AvailOrder 记录——cardId、companyId、units 和 cardPayLoad——与电表写入记录核对,让 kiosk 充值和 Sahl NFC 充电落到同一本用户台账上。
埃及镑缴费支出分析
一款家庭理财应用分页拉取 FilteredOrderReceipts 的 totalAmount、fees、serviceCode 和 createdAt,把一家人在电、水、燃气、手机和捐款上的埃及镑支出画成图表。
信贷环节的收入代理指标
小额信贷机构在报出 Tamweely 或 Forsa 式分期方案前,读取 EnquireConsumption 按月/年的 units 以及 Sahl Balance 和基金 nav 持仓,作为现金流代理指标。
商户 Sahl Pay 收款
咖啡馆或零售商签发一个 paymentCode,然后在 inquire 上盯 codeStatus 和 totalAmount,让 InstaPay 与 Meeza 的扣款和银行卡结账汇入同一收银台账。
常见问题
Sahl 暴露哪些账单和电表数据?
账单查询调用以 serviceCode、cardId 和 companyId 为键,返回预付费与后付费电、水、燃气、手机、固话、捐款、教育、税费等服务的 totalAmount、fees、serviceFees、debtsAmount 和 units。用量历史调用补充预付费用量图表使用的按月/年 units 序列。
Sahl 如何给 NFC 电卡充电?
NFC 刷卡后,读卡与余额查询调用先识别 cardId、vendorId 和剩余 balance。支付订单调用收取埃及镑,随后履约返回 cardPayLoad,由设备上的电表库写回卡片。
结账 API 上出现哪些支付方式?
结账与银行卡扣款调用覆盖 Visa/Mastercard/Meeza 卡、Meeza 钱包、Valu 分期、InstaPay(带 paymentCode)以及应用内 Sahl Balance。收据会盖上 paymentStatus、transactionId 和费用拆分。
应用如何鉴权?
在 POST /v1/auth/sessions 交换手机号与密码后,会铸出 accessToken 和 refreshToken。之后的账单、钱包和收据调用都携带 Authorization: Bearer 和 deviceId;银行卡扣款使用短时有效的支付域令牌。
与 Sahl سهل - Payments Made Easy 相似的应用
- myfawry — myfawry 是 Fawry 面向埃及消费者的应用,可用已保存的借记卡或信用卡缴账单,并提供与 Banque Misr / Meeza 合作的 yellowcard 预付卡,可通过 InstaPay 充值、在 Fawry Plus 网点使用。
- InstaPay Egypt — InstaPay Egypt 是埃及央行的即时支付应用,可绑定银行账户和 Meeza 预付卡,全天候转账并缴纳电信、公用事业账单及充值。
- OPay Egypt — OPay Egypt 是埃及生活缴费应用,可缴电费、水费、燃气和网费,为手机充值,还支持分期、政府规费、中小学与大学学费以及捐款。
- WE Pay EG — WE Pay EG 是埃及电信(WE)与 Banque Misr 合作的钱包,可在网点存取现、向其他埃及电子钱包转账、缴纳 WE 账单,并用 NFC 给电卡充值以及缴水电燃气费。
- Orange Max it - Egypt — Orange Max it 是 Orange 埃及的用户应用,用于管理手机和家庭宽带,并通过 Orange Cash 转账、给号码充值以及缴纳公用事业账单。
- etisalat money - EG — etisalat money 是 e& 埃及的手机钱包,可向其他钱包转账、缴公用事业费、在 etisalat 门店和 ATM 取现、向商户付款、给话费充值以及捐款。
- Ana Vodafone — Ana Vodafone 是 Vodafone 埃及的用户自助应用,可在埃及境内或漫游时管理流量、通话分钟及其他 Vodafone 服务。
- eKhales — eKhales 是 e-finance 面向埃及的缴费应用,可在同一处缴纳各类账单,支持多种付款方式并查看历史付款记录。
相关主题
- Sahl API
- Sahl Pay 埃及
- EgyptPay 缴费
- 埃及 NFC 电卡
- 账单查询 API
- InstaPay Meeza
- 预付费电表 units
- Sahl Balance
- 埃及镑收据
- Globaltronics Sahl
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业