跳轉到主要內容

PDF Tools API

發票產生 API

把產生發票 PDF接進後端、批次任務或產品流程,不需要自行維護 PDF 處理服務。

Credits

1 Credit / call

1 Credit per successful API request. Failed processing attempts are refunded automatically.

Pricing

1,000 Credits = $1

Every signed-in user receives 100 free API Credits each month.

Endpoint

/api/external/invoice-generator/pdf

Use your API Key in the x-api-key header.

Use case

適合把帳務系統、後台管理或自動化流程中的發票 JSON 轉成 PDF。網站工具適合人工確認,API 適合穩定重複的伺服器端流程。

cURL example

curl -X POST https://itextmaster.com/api/external/invoice-generator/pdf \
  -H 'x-api-key: YOUR_API_KEY' \
  -F 'invoiceNumber=INV-001' \
  -F 'fromName=Your Company' \
  -F 'billToName=Client Name' \
  -F 'items=[{"description":"Consulting","quantity":10,"rate":150}]' \
  --output invoice.pdf

Multipart example

curl -X POST https://itextmaster.com/api/external/invoice-generator/pdf \
  -H 'x-api-key: YOUR_API_KEY' \
  -F 'invoiceNumber=INV-001' \
  -F 'fromName=Your Company' \
  -F 'billToName=Client Name' \
  -F 'items=[{"description":"Consulting","quantity":10,"rate":150}]' \
  --output invoice.pdf

JSON base64 example

curl -X POST https://itextmaster.com/api/external/invoice-generator/pdf \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{
    "invoiceNumber": "INV-001",
    "from": { "name": "Your Company", "email": "you@example.com" },
    "billTo": { "name": "Client Name", "email": "client@example.com" },
    "items": [{ "description": "Consulting", "quantity": 10, "rate": 150 }]
  }' \
  --output invoice.pdf

Node.js example

import { writeFile } from 'node:fs/promises';

const response = await fetch('https://itextmaster.com/api/external/invoice-generator/pdf', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': process.env.ITEXTMASTER_API_KEY
  },
  body: JSON.stringify({
  invoiceNumber: 'INV-001',
  from: { name: 'Your Company', email: 'you@example.com' },
  billTo: { name: 'Client Name', email: 'client@example.com' },
  items: [{ description: 'Consulting', quantity: 10, rate: 150 }]
})
});

if (!response.ok) {
  throw new Error(await response.text());
}

await writeFile('invoice.pdf', Buffer.from(await response.arrayBuffer()));

Python example

import os
import requests

response = requests.post(
    'https://itextmaster.com/api/external/invoice-generator/pdf',
    headers={
        'Content-Type': 'application/json',
        'x-api-key': os.environ['ITEXTMASTER_API_KEY'],
    },
    json={
        'invoiceNumber': 'INV-001',
        'from': {'name': 'Your Company', 'email': 'you@example.com'},
        'billTo': {'name': 'Client Name', 'email': 'client@example.com'},
        'items': [{'description': 'Consulting', 'quantity': 10, 'rate': 150}],
    },
)
response.raise_for_status()

with open('invoice.pdf', 'wb') as f:
    f.write(response.content)

Error codes

400invalid_invoice_payload

發票 JSON 格式錯誤或缺少必要欄位。

401invalid_api_key

x-api-key 缺少、無效或已輪換。

402insufficient_credits

帳號 API Credits 不足。

500invoice_pdf_generation_failed

發票 PDF 渲染失敗;失敗處理會自動退回 Credits。

Limits

  • 需要可正常開啟的 PDF 或有效輸入資料。
  • 請從伺服器端呼叫 API,避免在瀏覽器暴露 API Key。
  • 大量處理前先用代表性樣本確認輸出品質。

Response headers

invoice.pdf,回應標頭會列出本次扣除的 Credits 與剩餘額度。

Content-Type
產出檔案的 MIME 類型,通常是 application/pdf 或 application/zip。
Content-Disposition
產出檔案的下載檔名。
X-Credits-Charged
成功請求扣除的 Credits。
X-Credit-Balance
請求完成後剩餘的 API Credits。

FAQ

發票產生 API 如何計費?

成功的 發票產生 API 請求會使用 API Credits;處理失敗會自動退回。每位登入使用者每月有 100 個免費 API Credits,1,000 Credits = $1。

網站工具會使用 API Credits 嗎?

瀏覽器本地處理的網站工具不使用 API Credits;只有帶 API Key 的自動化請求才計費。

可以從前端直接呼叫嗎?

不建議。API Key 應保存在伺服器端、排程任務或後端自動化腳本中。

Start with 100 free API Credits

Create an API Key, test 發票產生 API, and buy more Credits only when automation volume grows.