Invoice Fly 图标

Invoice Fly 数据 API:发票、报价与收款

Labhouse Mobile · 企业办公 4.7 ★

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 把这份台账变成可调用的开放数据。

应用截图

  • Invoice Fly 应用截图 1
  • Invoice Fly 应用截图 2
  • Invoice Fly 应用截图 3
  • Invoice Fly 应用截图 4
  • Invoice Fly 应用截图 5
  • Invoice Fly 应用截图 6
  • Invoice Fly 应用截图 7

API 端点一览

以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。

  • 换取登录令牌

    POST /v1/invoicefly/login osint

    用邮箱或 Google 登录得到的 Firebase idToken 换取后续账单、客户与商户请求使用的会话 idToken、uid 与 userId。

    认证方式: 无需登录。请求体为邮箱或 Google 登录得到的 Firebase idToken 以及用户 email。返回的 idToken 作为后续请求的 Authorization: Bearer。

    • email
    • 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/invoices openfinance

    分页返回已登录商户的账单,含 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/invoices openfinance

    创建 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/send opendata

    把账单 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-number opendata

    返回已登录商户的下一个 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/clients osint

    返回新建发票与客户页使用的客户目录,以 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/estimates opendata

    列出报价账单(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/ai opendata

    根据 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/business opendata

    返回设置页使用的已登录商户资料: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/scan opendata

    对小票做 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/jobs opendata

    列出已排期工单(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/stripe openbanking

    通过已连接的 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/pause openfinance

    暂停该商户所有进行中的周期系列,使预付/周期账单在恢复前不再自动开票。

    认证方式: 来自 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/paypal openbanking

    为账单发起 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 天交付
  • 验收通过后才付款
  • 仅在授权范围内作业

获取报价