概要
Invovate請求書APIを使用すると、開発者はシンプルなHTTP POSTリクエストでプロの請求書を生成できます。すべての計算を含む構造化されたJSONレスポンスか、直接PDFダウンロードかを選択できます。APIは11言語、20以上の通貨、5種類のデザインテンプレートをサポートしています。日本のフリーランサー、SaaS企業、会計アプリケーションに最適です。
無料で開始
40リクエスト/時間、カード不要
JSONまたはPDF
出力形式を選択
消費税計算
行ごとまたは全体 (10%/8%)
多言語対応
ja, en, de, fr, zh など
ベースURL:
https://invovate.com/apiクイックスタート
3ステップで最初の請求書を作成:
ステップ1 — アカウント作成
invovate.comで無料登録し、メールアドレスを確認してください。
invovate.comで無料登録し、メールアドレスを確認してください。
ステップ2 — APIキー取得
ダッシュボードで「APIキーを生成」をクリック。キーは
ダッシュボードで「APIキーを生成」をクリック。キーは
inv_で始まります。 ステップ3 — 最初のリクエスト
curl -X POST https://invovate.com/api/generate-invoice \ -H "Content-Type: application/json" \ -H "Authorization: Bearer inv_yourApiKeyHere" \ -d '{ "from": {"name": "株式会社サンプル"}, "to": {"name": "クライアント株式会社"}, "items": [{"description": "ウェブ制作", "quantity": 1, "unit_price": 500000, "tax_rate": 10}], "invoice": {"currency": "JPY", "language": "ja"} }'
認証
APIは3種類の認証方法をサポートしています:
1. APIキー(サーバーサイドに推奨)
Authorization: Bearer inv_yourApiKeyHere
2. セッションCookie(Webアプリ向け)
ブラウザでログイン済みの場合、inv_sessionクッキーが自動的に送信されます。
3. 匿名(認証なし)
認証なしでの呼び出しはJSON出力のみに制限され、IPアドレスによるレート制限があります。APIのテストに便利です。
セキュリティ: APIキーをクライアントサイドのコードに含めたり、Gitリポジトリに保存したりしないでください。サーバーの環境変数を使用してください。
制限とプラン
| プラン | 料金 | 1時間あたり | 1週間あたり |
|---|---|---|---|
| 無料 | ¥0 | 40 | 400 |
| Starter | ¥1,400/月 | 200 | 4,000 |
| Pro | ¥4,400/月 | 1,000 | 40,000 |
| Enterprise | お問い合わせ | 無制限 | 無制限 |
制限はレスポンスヘッダーで確認できます:
X-RateLimit-Limit-Hourly: 40 X-RateLimit-Remaining-Hourly: 39 X-RateLimit-Reset-Hourly: 1712123456 X-RateLimit-Limit-Weekly: 400 X-RateLimit-Remaining-Weekly: 399 X-RateLimit-Reset-Weekly: 1712345678
請求書生成
POST
/api/generate-invoice
請求書を生成し、すべての計算を含むJSONまたはバイナリPDFファイルを返します。
リクエスト形式
送信者 (from)
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| from.name | string | 必須 | 会社名または氏名 |
| from.address | string | 任意 | 住所 |
| from.email | string | 任意 | メールアドレス |
| from.tax_id | string | 任意 | 法人番号または適格請求書発行事業者登録番号 |
受信者 (to)
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| to.name | string | 必須 | 取引先の名称 |
| to.address | string | 任意 | 取引先の住所 |
| to.email | string | 任意 | 取引先のメールアドレス |
請求書データ (invoice)
| フィールド | 型 | デフォルト | 説明 |
|---|---|---|---|
| invoice.number | string | 自動 | 請求書番号 |
| invoice.date | string | 本日 | 請求日 (YYYY-MM-DD) |
| invoice.due_date | string | — | 支払期日 (YYYY-MM-DD) |
| invoice.currency | string | USD | 通貨コード(例: JPY) |
| invoice.language | string | en | 言語コード(例: ja) |
| invoice.terms | string | — | 支払い条件 |
| invoice.po_number | string | — | 発注番号 |
明細 (items 配列)
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| description | string | 必須 | 商品またはサービスの説明 |
| quantity | number | 必須 | 数量 |
| unit_price | number | 必須 | 単価(税抜) |
| discount | number | 任意 | 割引(パーセントまたは金額) |
| discount_type | string | percent | "percent" または "amount" |
| tax_rate | number | 任意 | 行ごとの消費税率(例: 10) |
その他のフィールド
| フィールド | 型 | 説明 |
|---|---|---|
| global_tax | number | 全体税率(行ごとの税率がない場合に適用) |
| global_discount | number | 合計に対する割引 |
| amount_paid | number | 既払い金額(部分払いの場合) |
| notes | string | 請求書下部の備考 |
| template | string | テンプレート名: classic, modern, bold, minimal, navy |
| output | string | "json"(デフォルト)または "pdf" |
レスポンス形式
JSONレスポンス (output: "json")
{ "success": true, "invoice": { "number": "INV-2026-042", "date": "2026-04-03", "due_date": "2026-05-03", "currency": "JPY", "language": "ja", "template": "classic", "from": { "name": "株式会社サンプル" }, "to": { "name": "クライアント株式会社" }, "items": [ { "description": "ウェブサイト制作", "quantity": 1, "unit_price": 500000, "discount": 0, "tax_rate": 10, "tax_amount": 50000, "line_total": 550000 } ], "subtotal": 500000, "total_tax": 50000, "grand_total": 550000, "amount_paid": 0, "balance_due": 550000, "notes": "お取引ありがとうございます。" }, "meta": { "processing_ms": 11, "credits_remaining": { "hourly": 39, "weekly": 399 } } }
PDFレスポンス (output: "pdf")
以下のヘッダーを含むバイナリPDFファイルを返します:
Content-Type: application/pdf Content-Disposition: attachment; filename="invoice.pdf"
エラーコード
{ "success": false, "error": { "message": "少なくとも1つの明細が必要です" } }
| HTTPステータス | 意味 |
|---|---|
| 400 | バリデーションエラー — リクエスト形式を確認してください |
| 401 | 認証が必要またはAPIキーが無効 |
| 403 | メールアドレスが未確認 |
| 429 | レート制限を超過 |
| 500 | サーバー内部エラー |
認証エンドポイント
| メソッド | パス | 説明 |
|---|---|---|
| POST | /api/auth/register | メールとパスワードでアカウント作成 |
| POST | /api/auth/login | ログイン、セッションCookieを返す |
| POST | /api/auth/logout | ログアウト |
| GET | /api/auth/me | 現在のユーザー情報とAPIキーを取得 |
| POST | /api/auth/generate-api-key | 新しいAPIキーを生成(メール確認済み必須) |
コードサンプル
cURL — 消費税込みPDF請求書
curl -X POST https://invovate.com/api/generate-invoice \ -H "Content-Type: application/json" \ -H "Authorization: Bearer inv_yourApiKeyHere" \ -d '{ "from": { "name": "株式会社ウェブクリエイト", "address": "東京都渋谷区道玄坂1-1-1", "tax_id": "T1234567890123", "email": "[email protected]" }, "to": { "name": "株式会社クライアント", "address": "大阪府大阪市北区梅田2-2-2", "email": "[email protected]" }, "invoice": { "number": "INV-2026-042", "date": "2026-04-03", "due_date": "2026-05-03", "currency": "JPY", "language": "ja", "terms": "30日以内にお支払いください" }, "items": [ {"description": "ウェブサイト制作", "quantity": 1, "unit_price": 800000, "tax_rate": 10}, {"description": "SEOコンサルティング", "quantity": 5, "unit_price": 50000, "tax_rate": 10} ], "notes": "お取引ありがとうございます。", "template": "classic", "output": "pdf" }' --output invoice.pdf
JavaScript (Node.js)
// Invovate APIで請求書を生成 const response = await fetch('https://invovate.com/api/generate-invoice', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer inv_yourApiKeyHere' }, body: JSON.stringify({ from: { name: '株式会社サンプル', tax_id: 'T1234567890123' }, to: { name: 'クライアント株式会社', email: '[email protected]' }, invoice: { number: 'INV-001', currency: 'JPY', language: 'ja', due_date: '2026-05-03' }, items: [{ description: 'コンサルティング', quantity: 10, unit_price: 30000, tax_rate: 10 }], output: 'json' }) }); const data = await response.json(); if (data.success) { console.log('合計金額(税込):', data.invoice.grand_total, '円'); console.log('残りリクエスト数(1時間):', data.meta.credits_remaining.hourly); }
Python
import requests API_KEY = "inv_yourApiKeyHere" URL = "https://invovate.com/api/generate-invoice" # 日本語請求書の作成 invoice = { "from": { "name": "フリーランス デザイナー", "tax_id": "T1234567890123" }, "to": { "name": "株式会社クライアント", "address": "東京都新宿区1-1-1" }, "invoice": { "number": "INV-2026-001", "currency": "JPY", "language": "ja" }, "items": [ {"description": "ロゴデザイン", "quantity": 1, "unit_price": 150000, "tax_rate": 10}, {"description": "名刺デザイン", "quantity": 2, "unit_price": 30000, "tax_rate": 10} ], "output": "pdf" } response = requests.post(URL, json=invoice, headers={"Authorization": f"Bearer {API_KEY}"}) if response.status_code == 200: with open("invoice.pdf", "wb") as f: f.write(response.content) print("請求書を保存しました: invoice.pdf") else: print(f"エラー: {response.json()['error']['message']}")
対応言語
| コード | 言語 | テキスト方向 |
|---|---|---|
ja | 日本語 | LTR |
en | 英語 | LTR |
de | ドイツ語 | LTR |
fr | フランス語 | LTR |
nl | オランダ語 | LTR |
es | スペイン語 | LTR |
it | イタリア語 | LTR |
pt | ポルトガル語 | LTR |
ru | ロシア語 | LTR |
hi | ヒンディー語 | LTR |
ar | アラビア語 | RTL |
PDFテンプレート
| 名前 | スタイル |
|---|---|
classic | ブルーアクセント、交互グレー行(デフォルト) |
modern | ティール/シアン、クリーンでモダンなデザイン |
bold | ダークアンスラサイトヘッダー、高コントラスト |
minimal | ライトグレー、ボーダーなし |
navy | ネイビーヘッダーとゴールドアクセントライン |
対応通貨
JPY, USD, EUR, GBP, CAD, AUD, CHF, CNY, INR, AED, SAR, SGD, NZD, KRW, BRL, MXN, ZAR, SEK, NOK, DKK