Invovate← 請求書ジェネレーターに戻る

請求書ジェネレーターAPI

シンプルなAPIコールでプロフェッショナルなPDF請求書を生成

v1.0.0

概要

請求書ジェネレーターAPIを使用すると、多言語対応、RTLレイアウト、さまざまなデザインテンプレートをサポートしたプロフェッショナルなPDF請求書を作成できます。各APIコールは1クレジットを消費します。

シンプルな料金体系

請求書生成ごとに1クレジット

多言語対応

英語、アラビア語、フランス語、スペイン語など

RTLサポート

アラビア語の完全な右から左へのレイアウト

プロフェッショナルテンプレート

複数のデザインオプション

ベースURL:
https://invovate.com/api

クイックスタート

3つの簡単なステップで最初の請求書を生成:

ステップ1: APIキーの取得
invovate.comでサインアップし、ダッシュボードでAPIキーを生成
ステップ2: 請求書JSONファイルの作成
請求書データをJSONファイルとして保存(以下の例を参照)
ステップ3: APIコールの実行
curl -X POST https://invovate.com/api/render -H "Content-Type: application/json" -H "Authorization: inv_sk_your_api_key_here" -d "@invoice.json"

認証

すべてのAPIリクエストには認証用のAPIキーが必要です。APIキーをAuthorizationヘッダーに含めてください。

Authorization: inv_sk_your_api_key_here
APIキーフォーマット:APIキーはinv_sk_で始まり、一意の識別子が続きます。
重要:APIキーは安全に保管し、クライアントサイドコードで公開しないでください。APIキーはアカウントのクレジットにフルアクセスを提供します。

クレジットシステム

成功したPDF生成ごとに、アカウント残高から1クレジットが消費されます。

シンプルな料金体系:1クレジット = 1生成された請求書

クレジット残高の確認

各APIレスポンスには現在のクレジット残高が含まれます:

{ "credits": { "remaining": 95, "used": 1, "userType": "api", "verified": true } }

クレジットの購入

追加のクレジットを購入するには、invovate.comにアクセスし、課金セクションに移動してください。

注意:クレジットが不足している場合、APIコールは失敗します。常にAPIレスポンスで残高を確認してください。

PDF請求書の生成

POST
/api/render

JSONデータからPDF請求書を生成します。成功時に1クレジットを消費します。

リクエストヘッダー

Content-Type: application/json Authorization: inv_sk_your_api_key_here

リクエストボディ

請求書データをJSONファイルまたはインラインJSONオブジェクトとして送信します。

リクエスト形式

必須フィールド

フィールドタイプ必須説明
titlestringはい会社名
invnostringはい請求書番号
datestringはい請求書日付(YYYY-MM-DD)
tostringはいクライアント住所(複数行)
currencystringはい通貨コード(USD, EUR, AED, など)
langstringはい言語コード(ja, en, ar, fr, es, など)
templatestringはいテンプレート名(neat-pro, など)
rowsarrayはい明細行の配列

明細行フィールド

フィールドタイプ必須説明
descstringはい品目説明
qtynumber/stringはい数量
ratenumber/stringはい単価
discnumber/stringいいえ割引率
taxnumber/stringいいえ税率

オプションフィールド

フィールドタイプ説明
duestring支払期日(YYYY-MM-DD)
postring発注書番号
termsstring支払条件
shipstring配送先住所
notesstring追加メモ
refundstring返品ポリシー
logostringBase64エンコードされたロゴ画像
sigstringBase64エンコードされた署名画像
customLabelsobject異なる言語のカスタムテキストラベル

レスポンス形式

成功レスポンス

{ "success": true, "pdf": "base64_encoded_pdf_string_here", "credits": { "remaining": 95, "used": 1, "userType": "api", "verified": true }, "mode": "api", "metadata": { "template": "neat-pro", "language": "ja", "direction": "ltr", "fileSize": 15432, "creditsRemaining": 95, "itemsCount": 3, "hasLogo": true, "hasSignature": false } }

レスポンスフィールド

フィールドタイプ説明
successbooleanリクエスト成功ステータス
pdfstringBase64エンコードされたPDFファイル
credits.remainingnumber残りのクレジット残高
credits.usednumberこのコールで使用されたクレジット(常に1)
credits.userTypestringAPIコールでは常に"api"
modestringAPIコールでは常に"api"
metadataobject生成されたPDFに関する追加情報

エラー処理

エラーレスポンス形式

{ "success": false, "error": "エラーメッセージの説明", "code": "ERROR_CODE" }

一般的なエラーコード

エラーコードHTTPステータス説明
API_KEY_REQUIRED401AuthorizationヘッダーにAPIキーがありません
INVALID_API_KEY401無効または期限切れのAPIキー
EMAIL_VERIFICATION_REQUIRED403アカウントのメールが確認されていません
INVALID_JSON400リクエストボディのJSONが無効です
INSUFFICIENT_CREDITS402PDF生成のためのクレジットが不足しています
API_SECURITY_LIMIT_EXCEEDED429レート制限を超えました
RENDER_ERROR400PDF生成に失敗しました
INTERNAL_ERROR500内部サーバーエラー

コード例

日本語請求書例 (invoice_ja.json)

{ "title": "サンプル商事株式会社", "invno": "INV-2025-001", "date": "2025-11-13", "due": "2025-12-13", "currency": "JPY", "lang": "ja", "template": "neat-pro", "to": "クライアント会社\n123 ビジネス通り\[email protected]", "ship": "グローバルテックソリューション - 倉庫\n456 配送レーン\n東京都渋谷区 100-0001", "notes": "ご利用ありがとうございます!", "rows": [ { "desc": "ウェブサイト開発", "qty": "10", "rate": "75", "disc": "0", "tax": "10" }, { "desc": "コンサルティング時間", "qty": "5", "rate": "120", "disc": "0", "tax": "10" } ] }

英語請求書例 (invoice_en.json)

{ "title": "Sample Business Inc.", "invno": "INV-2025-001", "date": "2025-11-13", "due": "2025-12-13", "currency": "USD", "lang": "en", "template": "neat-pro", "to": "Client Company\n123 Business Ave\[email protected]", "ship": "Global Tech Solutions - Warehouse\n456 Shipping Lane\nNew York, NY 10001", "notes": "Thank you for your business!", "rows": [ { "desc": "Website Development", "qty": "10", "rate": "75", "disc": "0", "tax": "20" }, { "desc": "Consulting Hours", "qty": "5", "rate": "120", "disc": "0", "tax": "20" } ] }

cURLコマンド

# JSONファイルを使用 curl -X POST https://invovate.com/api/render -H "Content-Type: application/json" -H "Authorization: inv_sk_your_api_key_here" -d "@invoice_ja.json" # レスポンスをファイルに保存 curl -X POST https://invovate.com/api/render -H "Content-Type: application/json" -H "Authorization: inv_sk_your_api_key_here" -d "@invoice_ja.json" --output response.json

JavaScript例

async function generateInvoice(invoiceData) { const API_KEY = 'inv_sk_your_api_key_here'; try { const response = await fetch('https://invovate.com/api/render', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': API_KEY // 「Bearer」プレフィックスなし }, body: JSON.stringify(invoiceData) }); const result = await response.json(); if (result.success) { // Base64 PDFをデコード const pdfBytes = Uint8Array.from(atob(result.pdf), c =>c.charCodeAt(0)); const blob = new Blob([pdfBytes], { type: 'application/pdf' }); // PDFをダウンロード const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `請求書-${invoiceData.invno}.pdf`; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); console.log(`PDF生成完了!残りクレジット: ${result.credits.remaining}`); } else { console.error('エラー:', result.error); } } catch (error) { console.error('リクエスト失敗:', error); } } // 使用例 const invoiceData = { title: "私の会社", invno: "INV-001", date: "2024-01-15", currency: "JPY", lang: "ja", template: "neat-pro", to: "クライアント名\nクライアント住所", rows: [ { desc: "ウェブデザイン", qty: 1, rate: 1000 } ] }; generateInvoice(invoiceData);

Python例

import requests import base64 import json API_KEY = "inv_sk_your_api_key_here" URL = "https://invovate.com/api/render" invoice_data = { "title": "私の会社", "invno": "INV-001", "date": "2024-01-15", "currency": "JPY", "lang": "ja", "template": "neat-pro", "to": "クライアント会社\n123 クライアント通り", "rows": [ {"desc": "ウェブデザイン", "qty": 1, "rate": 1000} ] } headers = { "Content-Type": "application/json", "Authorization": API_KEY # 「Bearer」プレフィックスなし } response = requests.post(URL, headers=headers, json=invoice_data) result = response.json() if result["success"]: # PDFをファイルに保存 pdf_data = base64.b64decode(result["pdf"]) with open("請求書.pdf", "wb") as f: f.write(pdf_data) print(f"PDF生成完了!残りクレジット: {result['credits']['remaining']}") else: print(f"エラー: {result['error']}")

対応言語

言語コード言語方向
ja日本語LTR
en英語LTR
arアラビア語RTL
ar-e東部アラビア語RTL
frフランス語LTR
esスペイン語LTR
hiヒンディー語LTR
ptポルトガル語LTR

利用可能なテンプレート

テンプレート名説明
neat-proクリーンなプロフェッショナルデザイン
modern-right右揃えのモダンレイアウト
classic-left伝統的な左揃えデザイン
elegant-gray-proエレガントなグレーカラースキーム
band-blue-proブルーヘッダーバンドデザイン
cool-waves-proモダンな波パターンデザイン