Invoice Fly 数据 API:发票、报价与收款
Invoice Fly(Play 标题 Invoice Maker - Invoice Fly)是巴塞罗那 Labhouse Mobile SL 面向自由职业者、技工与小型工作室的手机开票应用。用户用邮箱或 Google 登录后,首页标签覆盖带模板、行项目税与折扣的发票和报价、从通讯录导入的客户列表、工单周视图、报销采集、报表,以及 Stripe 或 PayPal 收款(可加小费)。周期系列覆盖预付账单,AI 报价生成器能把工单描述变成行项目,多人邀请可共享同一商户,同一账户在设备与网页客户端之间同步。Labhouse 注册于巴塞罗那 Carrer de Pomaret;Android 评分为 4.7(约 13.5 万条评价)、下载量超 100 万,并进入 Play 商业类畅销榜。它与 Invoice Simple、FreshBooks、Zoho Invoice 和 Wave 同台,定位为手机优先的开票与报价工具,而不是完整的桌面账本。
发出的账单以 invoiceNumber、dueDate、balanceDue、billType 与 billStatus 落行,行项目是 quantity、price、taxRate 与 taxAmount。客户以 clientId、clientName、customerEmail 与 phoneNumber 为键;商户资料是 businessId、businessName、logoUrl 与 canReceivePayments。会话是邮箱或 Google 登录后的 idToken,并带 uid / userId。
工单排在 jobName、scheduledDateTime 与 jobSiteAddress 上,并以 linkedJobId 挂到账单。扫描报销返回 expenseId、merchant、totalAmount 与 duplicatedExpense。卡与 PayPal 收款追加带 paidDate、tipAmount 与 alreadyPaidUrl 的 paymentRecords;周期账单按 recurringInvoiceId / recurringType 暂停。
财务在到期日前追未付欧元行,支付台席对清 Stripe 与 PayPal 收款,记账把小票 OCR 接到已开 AR,外勤把已排期工单变成发票——openData Studio 把这份台账变成可调用的开放数据。
应用截图
API 端点一览
以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。
换取登录令牌
POST
/v1/invoicefly/loginosint用邮箱或 Google 登录得到的 Firebase idToken 换取后续账单、客户与商户请求使用的会话 idToken、uid 与 userId。
认证方式: 无需登录。请求体为邮箱或 Google 登录得到的 Firebase idToken 以及用户 email。返回的 idToken 作为后续请求的 Authorization: Bearer。
- idToken
- uid
- userId
- token
POST /v1/invoicefly/login HTTP/1.1 Content-Type: application/json { "email": "[email protected]", "idToken": "eyJhbGciOi...", "uid": "usr_8f21a4c2" }{ "idToken": "eyJhbGciOi...", "uid": "usr_8f21a4c2", "userId": "usr_8f21a4c2", "email": "[email protected]", "token": "st-9c11ab" }列出发票与报价
GET
/v1/invoicefly/invoicesopenfinance分页返回已登录商户的账单,含 invoiceNumber、dueDate、balanceDue、billType 与 billStatus,填充发票与报价页。
认证方式: 来自 POST /v1/invoicefly/login 的 Authorization: Bearer idToken。查询参数 billType 过滤发票或报价。
- billId
- billName
- invoiceNumber
- billType
- billStatus
- clientId
- clientName
- dueDate
- balanceDue
- totalDue
- totalPaid
- taxAmount
- taxRate
- currency
- overdue
- paidDate
- invoiceLink
- billLink
- poNumber
- linkedJobId
- createdAt
- updatedAt
GET /v1/invoicefly/invoices?billType=invoice&limit=50 HTTP/1.1 Authorization: Bearer eyJhbGciOi... Accept: application/json{ "bills": [ { "billId": "bill_7c11ab", "billName": "INV-1042", "invoiceNumber": "INV-1042", "billType": "invoice", "billStatus": "unpaid", "clientId": "cli_9aa01", "clientName": "Harbor Studio LLC", "dueDate": "2026-10-15", "balanceDue": 2613.0, "totalDue": 2613.0, "totalPaid": 0, "taxAmount": 213.0, "taxRate": 8.875, "currency": "EUR", "overdue": false, "paidDate": null, "invoiceLink": "https://files.example.com/i/bill_7c11ab", "billLink": "https://files.example.com/i/bill_7c11ab", "poNumber": "PO-88", "linkedJobId": "job_22", "createdAt": "2026-09-15T16:02:11.000Z", "updatedAt": "2026-09-15T16:04:02.000Z" } ] }创建发票
POST
/v1/invoicefly/invoicesopenfinance创建 billType 为 invoice(或 estimate)的账单,含行项目 quantity、price、taxRate 与 discount,返回 billId、invoiceNumber 与 balanceDue。
认证方式: 来自 POST /v1/invoicefly/login 的 Authorization: Bearer idToken。
- billType
- clientId
- clientName
- dueDate
- currency
- poNumber
- linkedJobId
- items
- quantity
- price
- taxable
- discount
- taxRate
- paymentInstructions
- billId
- billName
- invoiceNumber
- billStatus
- balanceDue
- totalDue
- taxAmount
- createdAt
POST /v1/invoicefly/invoices HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "billType": "invoice", "clientId": "cli_9aa01", "clientName": "Harbor Studio LLC", "dueDate": "2026-10-15", "currency": "EUR", "poNumber": "PO-88", "linkedJobId": "job_22", "items": [ { "quantity": 1, "price": 2400.0, "taxable": true, "discount": 0, "taxRate": 8.875 } ], "paymentInstructions": "SEPA or card" }{ "billId": "bill_7c11ab", "billName": "INV-1042", "invoiceNumber": "INV-1042", "billType": "invoice", "billStatus": "unpaid", "balanceDue": 2613.0, "totalDue": 2613.0, "taxAmount": 213.0, "createdAt": "2026-09-15T16:02:11.000Z" }用邮件发送发票
POST
/v1/invoicefly/invoices/sendopendata把账单 PDF 发到 toEmail(可选 ccEmail 与 bccEmail),并返回给客户查看的 invoiceLink / billLink。
认证方式: 来自 POST /v1/invoicefly/login 的 Authorization: Bearer idToken。请求体标识账单与收件地址。
- billId
- toEmail
- ccEmail
- bccEmail
- customerEmail
- billStatus
- invoiceLink
- billLink
- status
POST /v1/invoicefly/invoices/send HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "billId": "bill_7c11ab", "toEmail": "[email protected]", "ccEmail": "[email protected]", "bccEmail": "[email protected]", "customerEmail": "[email protected]" }{ "billId": "bill_7c11ab", "billStatus": "unpaid", "toEmail": "[email protected]", "invoiceLink": "https://files.example.com/i/bill_7c11ab", "billLink": "https://files.example.com/i/bill_7c11ab", "status": "sent" }分配下一发票号
GET
/v1/invoicefly/invoice-numberopendata返回已登录商户的下一个 invoiceNumber / billName,供新建发票在保存前盖上唯一编号。
认证方式: 来自 POST /v1/invoicefly/login 的 Authorization: Bearer idToken。查询参数 billType 选择发票或报价编号。
- billType
- invoiceNumber
- billName
GET /v1/invoicefly/invoice-number?billType=invoice HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "billType": "invoice", "invoiceNumber": "INV-1043", "billName": "INV-1043" }列出客户
GET
/v1/invoicefly/clientsosint返回新建发票与客户页使用的客户目录,以 clientId 为键,含 clientName、customerEmail、phoneNumber 与 address。
认证方式: 来自 POST /v1/invoicefly/login 的 Authorization: Bearer idToken。
- clientId
- clientName
- customerEmail
- phoneNumber
- address
- createdAt
- updatedAt
GET /v1/invoicefly/clients?limit=50 HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "clients": [ { "clientId": "cli_9aa01", "clientName": "Harbor Studio LLC", "customerEmail": "[email protected]", "phoneNumber": "+34-93-555-0142", "address": "Carrer de Mallorca 12, Barcelona", "createdAt": "2024-01-09T12:00:00.000Z", "updatedAt": "2026-09-01T09:14:22.000Z" } ] }列出报价
GET
/v1/invoicefly/estimatesopendata列出报价账单(billType 为 estimate、合计、accepted/declined 状态),展示在报价页、转为发票之前。
认证方式: 来自 POST /v1/invoicefly/login 的 Authorization: Bearer idToken。
- billId
- billName
- billType
- billStatus
- clientName
- balanceDue
- taxAmount
- currency
- createdAt
- totalEstimates
GET /v1/invoicefly/estimates?limit=50 HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "estimates": [ { "billId": "est_22b", "billName": "EST-210", "billType": "estimate", "billStatus": "accepted", "clientName": "Harbor Studio LLC", "balanceDue": 1959.75, "taxAmount": 159.75, "currency": "EUR", "createdAt": "2026-09-02T10:00:00.000Z" } ], "totalEstimates": 1 }用 AI 起草报价
POST
/v1/invoicefly/estimates/aiopendata根据 jobDescription 与 estimateBullets 生成报价,返回带 quantity、price 与 taxAmount 的行项目草稿。
认证方式: 来自 POST /v1/invoicefly/login 的 Authorization: Bearer idToken。
- clientId
- jobDescription
- estimateBullets
- billId
- billType
- items
- quantity
- price
- taxable
- balanceDue
- taxAmount
POST /v1/invoicefly/estimates/ai HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "clientId": "cli_9aa01", "jobDescription": "Kitchen remodel, 12 m2", "estimateBullets": ["Demolition", "Tile", "Plumbing"] }{ "billId": "est_22c", "billType": "estimate", "estimateBullets": ["Demolition", "Tile", "Plumbing"], "items": [ {"quantity": 1, "price": 1800.0, "taxable": true} ], "balanceDue": 1959.75, "taxAmount": 159.75 }读取已登录商户
GET
/v1/invoicefly/businessopendata返回设置页使用的已登录商户资料:businessName、logoUrl、currency、地址以及 canReceivePayments 是否开启。
认证方式: 来自 POST /v1/invoicefly/login 的 Authorization: Bearer idToken。
- businessId
- businessName
- businessEmail
- businessPhone
- businessAddress
- businessWebsite
- businessCountryCode
- logoUrl
- currency
- canReceivePayments
GET /v1/invoicefly/business HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "businessId": "biz_k2mL", "businessName": "Alex Design Co", "businessEmail": "[email protected]", "businessPhone": "+34-93-555-0100", "businessAddress": "Carrer de Pomaret 56, Barcelona", "businessWebsite": "https://studio.example", "businessCountryCode": "ES", "logoUrl": "https://files.example.com/biz_k2mL/logo.png", "currency": "EUR", "canReceivePayments": true }扫描报销小票
POST
/v1/invoicefly/expenses/scanopendata对小票做 OCR,返回含 merchant、category、totalAmount 与 taxAmount 的报销;若同一票据已保存则标记 duplicatedExpense。
认证方式: 来自 POST /v1/invoicefly/login 的 Authorization: Bearer idToken。请求体为用于 OCR 的小票图片。
- photoUrl
- businessId
- expenseId
- merchant
- category
- totalAmount
- taxAmount
- currency
- duplicatedExpense
POST /v1/invoicefly/expenses/scan HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "photoUrl": "<receipt-image>", "businessId": "biz_k2mL" }{ "expenseId": "exp_44", "merchant": "Ferreteria Central", "category": "materials", "totalAmount": 186.4, "taxAmount": 15.2, "currency": "EUR", "duplicatedExpense": false }列出工单
GET
/v1/invoicefly/jobsopendata列出已排期工单(jobName、jobSiteAddress、scheduledDateTime),供工单周视图展示,并可通过 linkedJobId 挂到新建发票上。
认证方式: 来自 POST /v1/invoicefly/login 的 Authorization: Bearer idToken。
- jobId
- jobName
- jobTitle
- jobDescription
- jobSite
- jobSiteAddress
- scheduledDate
- scheduledDateTime
- clientId
- linkedJobId
- hasActiveJobs
GET /v1/invoicefly/jobs?from=2026-09-01&to=2026-10-01 HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "jobs": [ { "jobId": "job_22", "jobName": "Harbor kitchen", "jobTitle": "Kitchen remodel", "jobDescription": "12 m2 tile and plumbing", "jobSite": "Carrer de Mallorca 12", "jobSiteAddress": "Carrer de Mallorca 12, Barcelona", "scheduledDate": "2026-09-18", "scheduledDateTime": "2026-09-18T09:00:00.000Z", "clientId": "cli_9aa01", "linkedJobId": "job_22", "hasActiveJobs": true } ] }用 Stripe 收取账单付款
POST
/v1/invoicefly/payments/stripeopenbanking通过已连接的 Stripe 账户对账单收款,并追加 paymentRecords 行(amount、paidDate),从而更新 balanceDue 与 totalPaid。
认证方式: 来自 POST /v1/invoicefly/login 的 Authorization: Bearer idToken。需商户已连接 Stripe 账户。
- billId
- totalDue
- currency
- tipAmount
- billStatus
- paymentRecords
- amount
- paidDate
- status
- totalPaid
- balanceDue
POST /v1/invoicefly/payments/stripe HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "billId": "bill_7c11ab", "totalDue": 2613.0, "currency": "EUR", "tipAmount": 0 }{ "billId": "bill_7c11ab", "billStatus": "unpaid", "paymentRecords": [ { "amount": 2613.0, "currency": "EUR", "paidDate": "2026-09-20T18:11:00.000Z", "status": "succeeded" } ], "totalPaid": 2613.0, "balanceDue": 0, "tipAmount": 0 }暂停全部进行中的周期发票
POST
/v1/invoicefly/recurring/pauseopenfinance暂停该商户所有进行中的周期系列,使预付/周期账单在恢复前不再自动开票。
认证方式: 来自 POST /v1/invoicefly/login 的 Authorization: Bearer idToken。
- businessId
- recurringInvoices
- recurringInvoiceId
- billName
- isRecurring
- recurringType
- recurringDurationUnit
- recurringDurationValue
- status
POST /v1/invoicefly/recurring/pause HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "businessId": "biz_k2mL" }{ "businessId": "biz_k2mL", "recurringInvoices": [ { "recurringInvoiceId": "rec_44", "billName": "INV-R-12", "isRecurring": true, "recurringType": "monthly", "recurringDurationUnit": "month", "recurringDurationValue": 1, "status": "paused" } ] }用 PayPal 收取账单付款
POST
/v1/invoicefly/payments/paypalopenbanking为账单发起 PayPal 结账(可选 tipAmount),并把收款记入 paymentRecords,已付章使用 alreadyPaidUrl。
认证方式: 来自 POST /v1/invoicefly/login 的 Authorization: Bearer idToken。需商户已启用 PayPal。
- billId
- totalDue
- currency
- tipAmount
- alreadyPaidUrl
- paymentRecords
- amount
- paidDate
- status
- totalPaid
- balanceDue
POST /v1/invoicefly/payments/paypal HTTP/1.1 Authorization: Bearer eyJhbGciOi... Content-Type: application/json { "billId": "bill_7c11ab", "totalDue": 2613.0, "currency": "EUR", "tipAmount": 50.0 }{ "billId": "bill_7c11ab", "alreadyPaidUrl": "https://files.example.com/paid/bill_7c11ab", "paymentRecords": [ { "amount": 2663.0, "currency": "EUR", "paidDate": "2026-09-21T11:02:00.000Z", "status": "succeeded" } ], "totalPaid": 2663.0, "balanceDue": 0, "tipAmount": 50.0 }
数据类别
- 发票
- 报价
- 客户
- 报销
- 工单
- 收款
- 商户
- 登录会话
数据使用场景与案例
应收账款与到期日对账
夜间任务拉取 GET /v1/invoicefly/invoices 获取 invoiceNumber、dueDate、balanceDue、billStatus 与 overdue,再对照 GET /v1/invoicefly/clients 的 clientName、customerEmail,以便在到期日前追未付欧元账单。
Stripe 与 PayPal 收款核对
支付运营调用 POST /v1/invoicefly/payments/stripe 或 POST /v1/invoicefly/payments/paypal,读取 paymentRecords、paidDate、tipAmount、totalPaid 与 alreadyPaidUrl,对照账单的 balanceDue。
小票 OCR 入账
记账人员 POST /v1/invoicefly/expenses/scan,落下 merchant、category、totalAmount、taxAmount 与 duplicatedExpense,并对照 GET /v1/invoicefly/business 的 currency,让支出与已开 AR 并列。
工单排期到发票
外勤台席读取 GET /v1/invoicefly/jobs(jobName、scheduledDateTime、jobSiteAddress),用 POST /v1/invoicefly/invoices 带上 linkedJobId;报价仍是草稿时则 POST /v1/invoicefly/estimates/ai,从 jobDescription 生成。
常见问题
Invoice Fly 如何认证 API 调用?
POST /v1/invoicefly/login 用邮箱或 Google 登录得到的 Firebase idToken(外加 email 与 uid)换取会话 idToken、uid 与 userId。之后的请求以该 idToken 发送 Authorization: Bearer。
哪些端点暴露发票、报价与客户?
GET /v1/invoicefly/invoices 返回 billId、invoiceNumber、dueDate、balanceDue、billType 与 billStatus。GET /v1/invoicefly/invoice-number 分配下一个 invoiceNumber。POST /v1/invoicefly/invoices 创建账单;POST /v1/invoicefly/invoices/send 把账单发到 toEmail。GET /v1/invoicefly/estimates 列出报价;POST /v1/invoicefly/estimates/ai 根据 estimateBullets 起草报价。GET /v1/invoicefly/clients 返回 clientId、clientName、customerEmail 与 phoneNumber。
Stripe 与 PayPal 收款如何入账?
POST /v1/invoicefly/payments/stripe 通过已连接的 Stripe 账户对 billId 收款,并追加 paymentRecords(amount、paidDate、tipAmount),从而更新 totalPaid 与 balanceDue。POST /v1/invoicefly/payments/paypal 走 PayPal 做同样的事,并返回已付章 alreadyPaidUrl。
能否看到工单、报销与商户资料?
可以。GET /v1/invoicefly/jobs 返回 jobName、scheduledDateTime、jobSiteAddress 与 linkedJobId。POST /v1/invoicefly/expenses/scan 把小票 OCR 成 expenseId、merchant、totalAmount 与 duplicatedExpense。GET /v1/invoicefly/business 返回 businessName、logoUrl、currency 与 canReceivePayments。POST /v1/invoicefly/recurring/pause 按 recurringInvoiceId 停掉进行中的周期系列。
与 Invoice Fly 相似的应用
- Invoice Simple: Invoice Maker — Invoice Simple 是面向自由职业者与技工的手机开票应用:发票、报价、客户、Stripe/PayPal 收款与小票 OCR。
- Vyapar Invoice GST Billing App — Vyapar 是印度中小企业使用的 GST/VAT 开票与进销存应用,用于开具税务发票并跟踪库存。
- FreshBooks — FreshBooks 是面向小企业的云会计产品:发票、费用、工时与客户预付。
- Zoho Invoice — Zoho Invoice 是 Zoho 独立的开票应用,覆盖报价、周期账单与在线收款。
- Wave Invoicing — Wave 是面向个体经营者的免费开票与会计套件,含发票、报价与付款链接。
- QuickBooks — QuickBooks 是 Intuit 的小企业会计套件,除手机开票外还覆盖费用与银行流水。
- HoneyBook — HoneyBook 是面向创意从业者的客户流程工具:提案、发票、合同与付款在同一条流水线。
相关主题
- invoice fly api
- invoice fly 数据 api
- invoiceNumber dueDate balanceDue
- labhouse 开票 api
- invoice fly stripe paypal
- invoice fly 报价 工单
- 巴塞罗那开票 api
- invoice fly 客户 报销
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业