Konnash 记账数据 API:账本、钱包与账单
inyad Konnash 是一款离线优先的商户记账应用,其数据 API 先同步赊账客户与现金抽屉,再通过 inyad Pay 完成资金划转。会话从 /v1/session/bootstrap 开始,返回 accessToken、refreshToken、customers、账本分录、drawers 与 walletAccounts。后续写入则发往 /v1/ledger/customers/sync 与 /v1/wallet/transfers/execute 等路径。
账本分录以 multipart 形式走 /v1/ledger/entries/sync,收据照片可作为 imageUrl 返回;收银抽屉收支则按 drawerUuid 与 cashbookCategoryUuid 写入 /v1/cashbook/movements/sync。资金划转分两步:/v1/wallet/transfers/prepare 先预留 walletTransactionReference,随后 execute 调用携带 pin 与 operationPin 完成转账。赊账收款方面,/v1/checkout/links 生成 paymentLinkUrl,客户打开即可远程结清。
inyad Konnash 是面向商户的记账应用,覆盖赊账账本、现金抽屉与 inyad Pay 钱包转账。会话引导完成后,客户端离线同步客户、赊账分录与现金账收支;当商户需要动用资金或缴纳公用事业账单时,再调用钱包付款/充值、支付链接收款、未缴账单查询与 KYC 状态等端点。
应用截图
API 端点一览
建立商户会话
POST
/v1/session/bootstrapopenfinance开启 Konnash 移动会话,返回用于水合本地账簿的商户快照:令牌、账户、客户、赊账分录、现金账行、抽屉、钱包账户、缴费机构与支付链接。
认证方式: Authorization Bearer 令牌(Firebase/会话)加 Accept-Language 请求头;响应签发后续调用所用的 accessToken 与 refreshToken。
- accessToken
- refreshToken
- newAccount
- account.id
- account.accountReference
- account.name
- account.subscriptionPlanId
- customers
- transactions
- cashbookTransactions
- drawers
- walletAccounts
- billers
- paymentLinks
- payoutChannels
- users
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/session/bootstrap HTTP/1.1 Authorization: Bearer <firebase-or-prior-accessToken> Accept-Language: en{ "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example", "refreshToken": "rt_8c21f0ab", "newAccount": false, "account": { "id": 10482, "accountReference": "ACC-EG-10482", "name": "Cairo Grocery", "creationDate": 1719926400000, "modificationDate": 1758960000000, "expirationDate": 1790496000000, "subscriptionPlanId": 3 }, "customers": [{"uuid": "c-1a2b", "firstName": "Mona", "lastName": "Said", "phone": "+201001111111", "totalAmount": 1250.5}], "transactions": [{"uuid": "t-9c3d", "amount": 250.0, "isIn": true, "customerUuid": "c-1a2b"}], "cashbookTransactions": [], "drawers": [{"uuid": "d-aa01", "name": "Front till", "status": "OPEN"}], "walletAccounts": [{"phone": "+201000000001", "balanceInCents": 540000, "currency": "EGP", "status": "ACTIVE"}], "billers": [{"code": "EEHC", "displayName": "Electricity", "countryCode": "EG"}], "paymentLinks": [], "payoutChannels": [], "users": [] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的商户登录与首次运行的账户水合流程重建字段集镜像仪表盘快照:令牌、账户、客户、账本分录、抽屉、钱包账户、缴费机构与支付链接
同步赊账客户
POST
/v1/ledger/customers/syncopendata推送离线创建的赊账客户(欠款人与供应商),并接收服务端 id、滚动 totalAmount 与同步标记,使商户账本无需持续联网也能工作。
认证方式: Bearer accessToken,来自 POST /v1/session/bootstrap。
- uuid
- firstName
- lastName
- phone
- emailAddress
- address
- city
- country
- notes
- totalAmount
- isSupplier
- autoReminder
- collectionDate
- situationReference
- customerTagUuids
- userUuid
- deleted
- isSynchronized
- modificationDate
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/ledger/customers/sync HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json [ { "uuid": "c-1a2b3c4d", "firstName": "Mona", "lastName": "Said", "phone": "+201001111111", "emailAddress": "[email protected]", "address": "12 Tahrir St", "city": "Cairo", "country": "EG", "notes": "Weekly bread account", "totalAmount": 1250.5, "isSupplier": false, "autoReminder": true, "collectionDate": "2026-10-01", "situationReference": "SIT-88", "customerTagUuids": ["tag-retail"], "userUuid": "u-merchant-1", "deleted": false, "isSynchronized": false, "modificationDate": 1758960000000 } ]{ "items": [ { "id": 55120, "uuid": "c-1a2b3c4d", "firstName": "Mona", "lastName": "Said", "phone": "+201001111111", "emailAddress": "[email protected]", "city": "Cairo", "country": "EG", "totalAmount": 1250.5, "isSupplier": false, "situationReference": "SIT-88", "userId": 10482, "userUuid": "u-merchant-1", "isSynchronized": true, "modificationDate": 1758960120000 } ] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的赊账客户列表及其离线优先同步重建字段集镜像欠款人/供应商编辑表单与滚动余额列
同步赊账分录
POST
/v1/ledger/entries/syncopenfinance上传针对某客户的赊/借分录行(multipart 形式,可随附收据照片),并返回服务端 id 与赊账账本所用的 imageUrl。
认证方式: Bearer accessToken,来自 POST /v1/session/bootstrap。
- uuid
- amount
- isIn
- date
- notes
- customerId
- customerUuid
- storeId
- storeUuid
- isArchived
- archivalDate
- imageBody
- imageUrl
- deleted
- isSynchronized
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/ledger/entries/sync HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: multipart/form-data { "uuid": "t-9c3d", "amount": 250.0, "isIn": true, "date": "2026-09-27", "notes": "Partial collection", "customerUuid": "c-1a2b3c4d", "storeUuid": "st-main", "isArchived": false, "imageUrl": null, "deleted": false, "isSynchronized": false }{ "items": [ { "id": 88011, "uuid": "t-9c3d", "amount": 250.0, "isIn": true, "date": "2026-09-27", "notes": "Partial collection", "customerId": 55120, "customerUuid": "c-1a2b3c4d", "storeId": 12, "storeUuid": "st-main", "isArchived": false, "imageUrl": "https://cdn.example/tx/t-9c3d.jpg", "isSynchronized": true, "modificationDate": 1758960400000 } ] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用带收据照片附件的赊账分录流程重建字段集镜像按客户划分的收支账本行
同步现金账交易
POST
/v1/cashbook/movements/syncopenfinance按指定抽屉与现金账分类同步现金收支,使收银抽屉可独立于赊账账本来对账。
认证方式: Bearer accessToken,来自 POST /v1/session/bootstrap。
- uuid
- amount
- isIn
- date
- notes
- drawerId
- drawerUuid
- cashbookCategoryId
- cashbookCategoryUuid
- deleted
- isSynchronized
- modificationDate
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/cashbook/movements/sync HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: multipart/form-data { "uuid": "cb-44ee", "amount": 80.0, "isIn": false, "date": "2026-09-27", "notes": "Change float", "drawerUuid": "d-aa01", "cashbookCategoryUuid": "cat-opex", "deleted": false, "isSynchronized": false }{ "items": [ { "id": 22019, "uuid": "cb-44ee", "amount": 80.0, "isIn": false, "date": "2026-09-27", "notes": "Change float", "drawerId": 3, "drawerUuid": "d-aa01", "cashbookCategoryId": 7, "cashbookCategoryUuid": "cat-opex", "isSynchronized": true, "modificationDate": 1758960500000 } ] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的现金抽屉收支流程重建字段集镜像按抽屉与分类分组的收银对账行
解锁 inyad Pay 钱包
POST
/v1/wallet/unlockopenbanking在付款、提现或充值执行前,用商户钱包密码为 inyad Pay 操作把关。
认证方式: Bearer accessToken 来自会话引导,请求体另附钱包密码。
- password
- status
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/wallet/unlock HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "password": "********" }{ "status": "OK" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用在钱包操作前展示的 inyad Pay 解锁界面重建
读取钱包账户
GET
/v1/wallet/accountopenbanking读取商户 inyad Pay 钱包:钱包首页展示的 balanceInCents、currency、phone、status 与绑定的 bankAccountNumber。
认证方式: Bearer accessToken,来自 POST /v1/session/bootstrap。
- id
- phone
- type
- status
- balanceInCents
- currency
- customerFullName
- customerFirstName
- customerLastName
- bankAccountNumber
- creationDate
- modificationDate
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/wallet/account HTTP/1.1 Authorization: Bearer <accessToken>{ "id": 9001, "phone": "+201000000001", "type": "MERCHANT", "status": "ACTIVE", "balanceInCents": 540000, "currency": "EGP", "customerFullName": "Cairo Grocery", "customerFirstName": "Cairo", "customerLastName": "Grocery", "bankAccountNumber": "000123456789", "creationDate": 1719926400000, "modificationDate": 1758960000000 }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用展示余额、币种、手机号与绑定银行账户的钱包首页重建
发起钱包交易
POST
/v1/wallet/transfers/prepareopenbanking预留一笔钱包划转并返回 walletTransactionReference,后续付款或提现调用必须随操作 PIN 一并出示。
认证方式: Bearer accessToken 来自会话引导;需先完成钱包解锁。
- amountInCents
- customerUuid
- destinationAccountNumber
- destinationBankCode
- inyadPayReceptionMode
- inyadPayService
- notes
- paymentRequestReference
- walletTransactionReference
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/wallet/transfers/prepare HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "amountInCents": 150000, "customerUuid": "c-1a2b3c4d", "destinationAccountNumber": "000123456789", "destinationBankCode": "NBE", "inyadPayReceptionMode": "WALLET", "inyadPayService": "P2P", "notes": "Settle Mona ledger", "paymentRequestReference": null }{ "walletTransactionReference": "wtx-9f2a1c" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的转账确认步骤重建,该步骤在输入 PIN 前预留转账引用
从 inyad Pay 钱包付款
POST
/v1/wallet/transfers/executeopenbanking执行先前发起的 inyad Pay 转账,付给收款人(身份证件号、姓名、手机号),并返回 status、transactionId 与可选的现金自取码。
认证方式: Bearer accessToken 来自会话引导,请求体另附 pin 与 operationPin。
- beneficiary.cin
- beneficiary.firstName
- beneficiary.lastName
- beneficiary.phoneNumber
- operationPin
- pin
- walletTransactionReference
- status
- transactionId
- cashPickUpCode
- cashPickUpReference
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/wallet/transfers/execute HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "beneficiary": { "cin": "A123456789", "firstName": "Ahmed", "lastName": "Hassan", "phoneNumber": "+201009998887" }, "operationPin": "2580", "pin": "1470", "walletTransactionReference": "wtx-9f2a1c" }{ "status": "COMPLETED", "transactionId": 4412901, "walletTransactionReference": "wtx-9f2a1c", "cashPickUpCode": "CP-8821", "cashPickUpReference": "CPR-8821" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的收款人转账流程及其现金自取结果码重建字段集镜像收款人表单(身份证件号、姓名、手机号)及 PIN 确认
inyad Pay 钱包充值
POST
/v1/wallet/depositsopenbanking为商户钱包发起一笔入金,返回 cashInReference 及付款人可打开为账户充值的 paymentLink。
认证方式: Bearer accessToken,来自 POST /v1/session/bootstrap。
- amountInCents
- status
- cashInReference
- paymentLink.reference
- paymentLink.amountInCents
- paymentLink.currency
- paymentLink.status
- paymentLink.paymentLinkUrl
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/wallet/deposits HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "amountInCents": 200000 }{ "status": "PENDING", "cashInReference": "CIN-4402", "paymentLink": { "reference": "PL-topup-4402", "amountInCents": 200000, "currency": "EGP", "status": "OPEN", "paymentLinkUrl": "https://pay.example/pl/PL-topup-4402" } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用返回充值支付链接的钱包入金流程重建
钱包转账手续费询价
POST
/v1/wallet/transfers/quoteopenbanking在商户确认付款或提现前,为 inyad Pay 转账报出 feesAmountInCents 与 currency。
认证方式: Bearer accessToken,来自 POST /v1/session/bootstrap。
- amountInCents
- InyadPayReceptionMode
- recipientPhoneNumber
- walletService
- currency
- feesAmountInCents
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/wallet/transfers/quote HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "amountInCents": 150000, "InyadPayReceptionMode": "WALLET", "recipientPhoneNumber": "+201009998887", "walletService": "P2P" }{ "currency": "EGP", "feesAmountInCents": 750 }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用在确认转账前展示的转账前手续费报价重建
创建支付链接
POST
/v1/checkout/linksopenbanking为赊账余额创建可分享的支付链接,让客户远程付款;返回 paymentLinkUrl、reference 与 status。
认证方式: Bearer accessToken,来自 POST /v1/session/bootstrap。
- id
- reference
- amountInCents
- currency
- countryCode
- language
- status
- paymentLinkUrl
- customerId
- areFeesOnPayer
- isInactive
- deleted
- expirationDate
- paymentRequestType
- paymentRequestId
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/checkout/links HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "reference": "PL-mona-1250", "amountInCents": 125000, "currency": "EGP", "countryCode": "EG", "language": "ar", "expirationDate": 1760553600000, "customerId": 55120, "areFeesOnPayer": true, "isInactive": false, "deleted": false, "paymentRequestType": "PAYMENT_LINK", "status": "OPEN" }{ "id": 33108, "reference": "PL-mona-1250", "amountInCents": 125000, "currency": "EGP", "countryCode": "EG", "language": "ar", "status": "OPEN", "paymentLinkUrl": "https://pay.example/pl/PL-mona-1250", "customerId": 55120, "areFeesOnPayer": true, "isInactive": false, "expirationDate": 1760553600000 }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用用于远程收取赊账余额的分享支付链接流程重建
列出缴费机构
GET
/v1/billpay/providersopendata返回账单缴费目录(公用事业等),含 code、displayName、kycLevel 与 countryCode,用于发起未缴账单查询。
认证方式: Bearer accessToken,来自 POST /v1/session/bootstrap。
- code
- displayName
- displayNameCode
- fullName
- category
- countryCode
- description
- kycLevel
- logoUrl
- status
- websiteUrl
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/billpay/providers HTTP/1.1 Authorization: Bearer <accessToken>[ { "code": "EEHC", "displayName": "Electricity", "displayNameCode": "biller.eehc", "fullName": "Egyptian Electricity Holding Company", "category": "UTILITIES", "countryCode": "EG", "description": "Electricity bills", "kycLevel": "L1", "logoUrl": "https://cdn.example/billers/eehc.png", "status": "ACTIVE", "websiteUrl": "https://www.eehc.gov.eg" } ]依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用按 KYC 等级列出公用事业机构的缴费目录重建
查询未缴账单
POST
/v1/billpay/invoices/lookupopenfinance按缴费机构账户查询未缴公用事业账单,并在缴费前返回每张账单的 amountInCents、dueDate、customerName 与手续费字段。
认证方式: Bearer accessToken,来自 POST /v1/session/bootstrap。
- billingRequestId
- requestId
- billRefNumber
- billSelectType
- billsPaymentRule
- status
- totalAmountInCents
- feesAmountInCents
- feeType
- isPartialPayment
- bills.billNumber
- bills.amountInCents
- bills.currency
- bills.customerName
- bills.dueDate
- bills.deadlineDate
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/billpay/invoices/lookup HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "billingRequestId": "8f14e45f-ea52-4c6b-9b1b-1c9a4d2e7a01", "formWizard": { "billerCode": "EEHC", "accountNumber": "314159265" } }{ "requestId": "br-4401", "billingRequestId": "8f14e45f-ea52-4c6b-9b1b-1c9a4d2e7a01", "billRefNumber": "EEHC-314159265", "billSelectType": "MULTI", "billsPaymentRule": "ANY", "status": "OK", "totalAmountInCents": 48500, "feesAmountInCents": 250, "feeType": "FLAT", "feePercentage": 0.0, "isPartialPayment": false, "additionalMessage": null, "bills": [ { "billNumber": "2026-09-01", "billRefNumber": "EEHC-314159265-09", "label": "September electricity", "type": "ELECTRICITY", "amountInCents": 48500, "currency": "EGP", "customerName": "Cairo Grocery", "customerAddress": "12 Tahrir St", "dueDate": "2026-10-05", "deadlineDate": "2026-10-15", "issueDate": "2026-09-01", "feesAmountInCents": 250, "penaltyAmountInCents": 0, "isRequired": true } ] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用在缴费前按机构账户查询未缴账单的流程重建
缴纳未缴账单
POST
/v1/billpay/invoices/settleopenbanking缴纳选中的未缴账单,并返回 operationStatus、merchantCommissionAmountInCents 与商户留存的 billsReceipt。
认证方式: Bearer accessToken,来自 POST /v1/session/bootstrap。
- billingRequestId
- billRefNumber
- totalAmountInCents
- feesAmountInCents
- bills
- operationStatus
- status
- merchantCommissionAmountInCents
- billsReceipt
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/billpay/invoices/settle HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "billingRequestId": "8f14e45f-ea52-4c6b-9b1b-1c9a4d2e7a01", "billRefNumber": "EEHC-314159265", "totalAmountInCents": 48500, "feesAmountInCents": 250, "bills": [ { "billNumber": "2026-09-01", "billRefNumber": "EEHC-314159265-09", "amountInCents": 48500, "currency": "EGP" } ] }{ "billingRequestId": "8f14e45f-ea52-4c6b-9b1b-1c9a4d2e7a01", "operationStatus": "SUCCESS", "status": "OK", "merchantCommissionAmountInCents": 150, "billsReceipt": { "receiptNumber": "RCPT-9912" } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用返回商户收据与佣金的账单缴纳流程重建
读取 KYC 核验状态
POST
/v1/identity/verification/statusopenfinance按 financial_service_type 与金额检查哪些 KYC 证件已通过或仍在审核,以便对钱包与账单缴费功能设限。
认证方式: Bearer accessToken,来自 POST /v1/session/bootstrap。
- financial_service_type
- amountInCents
- currency
- documents.type
- documents.status
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/identity/verification/status HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "financial_service_type": "WALLET", "amountInCents": 150000, "currency": "EGP" }{ "documents": [ {"type": "NATIONAL_ID_FRONT", "status": "APPROVED"}, {"type": "NATIONAL_ID_BACK", "status": "APPROVED"}, {"type": "SELFIE", "status": "PENDING"} ] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用在大额钱包与账单缴费操作前的身份核验闸门重建
数据类别
- 账户余额
- 交易记录
- 客户
- 账单
- KYC 核验
数据使用场景与案例
赊账账本与 ERP 对账
夜间任务从 /v1/ledger/customers/sync 与 /v1/ledger/entries/sync 拉取客户与赊账分录(uuid、totalAmount、isIn、customerUuid),并写入商户的会计系统。
从账本发起钱包付款
收款机器人先调用 /v1/wallet/transfers/quote 询价,再调用 /v1/wallet/transfers/prepare 预留转账;当客户以提现方式结清时,携带收款人 cin/手机号与 walletTransactionReference 提交 /v1/wallet/transfers/execute。
店内公用事业缴费柜台
柜台流程先列出 /v1/billpay/providers,再按缴费账户查询 /v1/billpay/invoices/lookup,最后经 /v1/billpay/invoices/settle 完成缴纳,并把 merchantCommissionAmountInCents 记入收银抽屉。
大额转账前的 KYC 闸门
在进行高金额 amountInCents 转账前,应用以 financial_service_type 为 WALLET 调用 /v1/identity/verification/status,在 documents[].status 变为 APPROVED 前阻止付款。
常见问题
Konnash API 暴露哪些数据?
会话引导调用会水合商户快照:customers、赊账分录、现金账行、drawers、walletAccounts、billers 与 paymentLinks。随后的增量同步端点再把这些实体的本地修改推送上去。
inyad Pay 如何转账?
钱包解锁后,客户端先查询手续费,调用 /v1/wallet/transfers/prepare 获取 walletTransactionReference,再向 /v1/wallet/transfers/execute 提交收款人 cin、姓名、phoneNumber、pin 与 operationPin。
Konnash 能查询公用事业账单吗?
可以。/v1/billpay/providers 列出缴费目录;/v1/billpay/invoices/lookup 返回 bills[].amountInCents、dueDate 与 customerName;/v1/billpay/invoices/settle 则缴纳选中的账单。
账本支持离线使用吗?
实体携带 uuid、deleted、isSynchronized 与 modificationDate。应用先本地写入,待网络恢复后再提交 /v1/ledger/customers/sync、/v1/ledger/entries/sync 与 /v1/cashbook/movements/sync。
相关主题
- Konnash 数据 API
- inyad Konnash 端点
- Konnash 客户账本同步
- inyad Pay 钱包付款
- Konnash 现金账交易
- Konnash 未缴账单
- Konnash 支付链接
- Konnash KYC 核验状态
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业