使用invoify批量生成发票

eruera

发布于272天前
还没想好签名
## invoify是什么
Invoify 是一款发票生成器应用程序,采用 Next.js 13、TypeScript、React 和 Shadcn UI 库构建。它提供了一种创建和管理专业发票的简单方法。官方项目地址[:invoify](https://github.com/al1abb/invoify)。程序界面如下:

![invoify-web-app.png](https://dl.playground.lazycat.cloud/guidelines/515/1edeb9bb-4dbf-4c09-bb8e-ee1c033db217.png "invoify-web-app.png")

## 如何在懒猫微服上安装invoify
得益于懒猫微服强大的应用生态,懒猫商店现有2000+应用均可以一键安装,invoify应用地址如下:


https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.invoify

轻轻松松一键安装,再也不要操心各种系统繁琐的环境配置。

## invoify使用方法
应用使用很简单,打开后按照自己需求填写即可,填写完成后点击生成PDF即可,注意有些项目为必填项。现在应用使用界面暂不支持中文,填写内容支持中文,但是经过测试,部分内容行间距过大,暂时还没有解决这个问题。

![28e031b8-41d1-43c3-95fa-25cd35098e35.png](https://dl.playground.lazycat.cloud/guidelines/515/f7713bb6-e2fa-424f-bdf0-4f9b5ead1ddd.png "28e031b8-41d1-43c3-95fa-25cd35098e35.png")

![ee0f4d5c-fece-4c91-9bfb-d91d1a0b919a.png](https://dl.playground.lazycat.cloud/guidelines/515/ec6c3552-c419-4b4b-8278-619fc38a43ed.png "ee0f4d5c-fece-4c91-9bfb-d91d1a0b919a.png")

## Invoify API 字段说明

应用支持使用命令行批量生成发票,有利于用户进行二次开发适配自己的服务。首先对api各字段进行说明:
### 1. 发送方信息 (sender)

#### 必填字段

| 字段 | 类型 | 验证规则 | 说明 |
|------|------|----------|------|
| `name` | string | 2-50字符 | 公司/个人名称 |
| `address` | string | 2-70字符 | 地址 |
| `zipCode` | string | 2-20字符 | 邮编 |
| `city` | string | 1-50字符 | 城市 |
| `country` | string | 1-70字符 | 国家 |
| `email` | string | 5-30字符,有效邮箱格式 | 邮箱 |
| `phone` | string | 1-50字符 | 电话 |

#### 可选字段

| 字段 | 类型 | 说明 |
|------|------|------|
| `customInputs` | array | 自定义输入字段数组 |

---

### 2. 接收方信息 (receiver)

#### 必填字段

| 字段 | 类型 | 验证规则 | 说明 |
|------|------|----------|------|
| `name` | string | 2-50字符 | 客户名称 |
| `address` | string | 2-70字符 | 地址 |
| `zipCode` | string | 2-20字符 | 邮编 |
| `city` | string | 1-50字符 | 城市 |
| `country` | string | 1-70字符 | 国家 |
| `email` | string | 5-30字符,有效邮箱格式 | 邮箱 |
| `phone` | string | 1-50字符 | 电话 |

#### 可选字段

| 字段 | 类型 | 说明 |
|------|------|------|
| `customInputs` | array | 自定义输入字段数组 |

---

### 3. 发票详情 (details)

#### 必填字段

| 字段 | 类型 | 验证规则 | 说明 |
|------|------|----------|------|
| `invoiceNumber` | string | 至少1字符 | 发票号 |
| `invoiceDate` | date | 有效日期 | 开票日期 |
| `dueDate` | date | 有效日期 | 到期日期 |
| `currency` | string | 必填 | 货币类型 |
| `language` | string | 必填 | 语言 |
| `items` | array | 至少1个商品项 | 商品/服务列表 |
| `subTotal` | number | 非负数 | 小计金额 |
| `totalAmount` | number | 非负数 | 总金额 |
| `totalAmountInWords` | string | 必填 | 大写金额 |
| `paymentTerms` | string | 至少1字符 | 付款条款 |
| `pdfTemplate` | number | 必填 | PDF模板ID |

#### 可选字段

| 字段 | 类型 | 说明 |
|------|------|------|
| `invoiceLogo` | string | 发票Logo (base64或URL) |
| `purchaseOrderNumber` | string | 采购订单号 |
| `paymentInformation` | object | 付款信息 |
| `taxDetails` | object | 税务信息 |
| `discountDetails` | object | 折扣信息 |
| `shippingDetails` | object | 运费信息 |
| `additionalNotes` | string | 附加说明 |
| `signature` | object | 签名信息 |
| `updatedAt` | string | 更新时间 |

---

### 4. 商品项目 (items[]) - 数组中每个项目的字段

#### 必填字段

| 字段 | 类型 | 验证规则 | 说明 |
|------|------|----------|------|
| `name` | string | 至少1字符 | 商品/服务名称 |
| `quantity` | number | 大于0 | 数量 |
| `unitPrice` | number | 大于0 | 单价 |
| `total` | number | 必填 | 总价 |

#### 可选字段

| 字段 | 类型 | 说明 |
|------|------|------|
| `description` | string | 商品描述 |

---

以上仅列举了必选字段,其余可参考官方项目地址[:invoify](https://github.com/al1abb/invoify)


## 使用invoify批量生成发票
我是在windows平台上使用Git Bash运行命令,命令如下:

```bash
curl -X POST https://invoify..heiyu.space/api/invoice/generate \
        -H "Content-Type: application/json" \
        -d '{
          "sender": {
            "name": "Test Company",
            "address": "123 Test Street",
            "zipCode": "12345",
            "city": "Test City",
            "country": "USA",
            "email": "test@company.com",
            "phone": "123-456-7890"
          },
          "receiver": {
            "name": "Client Company",
            "address": "456 Client Avenue",
            "zipCode": "67890",
            "city": "Client City",
            "country": "USA",
            "email": "client@company.com",
            "phone": "098-765-4321"
          },
          "details": {
            "invoiceNumber": "INV-2024-002",
            "invoiceDate": "2024-01-15T00:00:00.000Z",
            "dueDate": "2024-02-15T00:00:00.000Z",
            "currency": "USD",
            "language": "en",
            "items": [{
              "name": "Design Service",
              "description": "Professional UI/UX design",
              "quantity": 3,
              "unitPrice": 75.00,
              "total": 225.00
            }],
            "subTotal": 225.00,
            "totalAmount": 225.00,
            "totalAmountInWords": "Two Hundred Twenty-Five Dollars",
            "paymentTerms": "Net 30",
            "pdfTemplate": 2
          }
        }' \
        -w "\nHTTP Status: %{http_code}\n" \
        -s -o test-invoice-template2.pdf
``` 
该命令仅使用了必选字段,用户可以根据自身需求进行修改生成。生成pdf如下所示:

![1756975931689.png](https://dl.playground.lazycat.cloud/guidelines/515/bcc01ad4-4bd2-4a3a-885f-de835c926d22.png "1756975931689.png")

## 总结

总之invoify是一款不错的发票生成应用,尤其有api服务支持二次开发,可以方便用户适配自己的服务。

评论

0

暂无评论

说点什么呢~
收藏
0
0
0