invox API ドキュメント (1.0.2)

Download OpenAPI specification:Download

invox の REST API の仕様のドキュメントです。

ご不明な点は チャット もしくは メール にてご連絡ください。

認証仕様

APIエンドポイント

https://api.invox.jp/api/public/

  • 認証方法
    OAuth2.0 ( https://oauth.net/2/ )
    認可を経て発行されたアクセストークンを使用してinvoxの機能を利用することができます。(手順の概要)

認可エンドポイント

https://api.invox.jp/oauth2/authorize/
リクエストメソッド: GET
認可コードを取得するために使用します。(認可コードはトークンの取得に必要です)

パラメータ

名前 内容
response_type レスポンスタイプ。code を指定します。
client_id クライアントID。弊社から発行いたします。
redirect_uri コールバックURI。認可レスポンスをリダイレクトするURLです。
state クライアントが初期リクエストに追加する OPAQUE 値。認可サーバはクライアントにリダイレクトして戻るときに、この値を含めます。
scope 認可される権限。利用されるAPIによって異なります。

リクエストイメージ

GET https://api.invox.jp/oauth2/authorize/?
response_type=code&
client_id=CLIENT_ID&
redirect_uri=https://YOUR_APP/REDIRECT_URI&
state=STATE&
scope=read write

レスポンス内容

HTTP/1.1 302 Found
Location: https://YOUR_APP/REDIRECT_URI?code=AUTHORIZATION_CODE&state=STATE

※認可コード(AUTHORIZATION_CODE)の有効期限は1分間であるため、取得後、1分以内にトークンを取得する必要があります。

トークンエンドポイント(トークンの取得、リフレッシュ、取り消し)

  • トークンの取得
    https://api.invox.jp/oauth2/token/
    リクエストメソッド: POST
    トークンの初回取得に使用します。

    ヘッダー

    • Authorization
      Basic Base64Encode(CLIENT_ID:CLIENT_SECRET)
      クライアントIDとクライアントシークレットをコロン(:)でつないだ文字列をBase64でエンコードした値を、ベーシックHTTP認証を介して認証ヘッダー(Authorization)に渡します。
      クライアントID(CLIENT_ID)およびクライアントシークレット(CLIENT_SECRET)は弊社から発行いたします。
    • Content-Type
      application/x-www-form-urlencoded

    パラメータ

    名前 内容
    grant_type 付与タイプ。authorization_code を指定します。
    client_id クライアントID
    redirect_uri コールバックURL。認可エンドポイントで使用された redirect_uri と同じ文字列を指定します。
    code 認可コード

    リクエストイメージ

    POST https://api.invox.jp/oauth2/token >
    Content-Type='application/x-www-form-urlencoded'&
    Authorization=Basic ENCODED_CLIENT_ID_AND_SECRET
    
    grant_type=authorization_code&
    client_id=CLIENT_ID&
    code=AUTHORIZATION_CODE&
    redirect_uri=https://YOUR_APP/REDIRECT_URI
    

    レスポンス内容

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "access_token": "ACCESS_TOKEN",
        "expires_in": 36000,
        "token_type": "Bearer",
        "scope": "read write",
        "refresh_token": "REFRESH_TOKEN
    }
    

    ※アクセストークンの有効期限はexpires_inで返却された値(秒)です。  リフレッシュトークン(更新トークン)の有効期限はありません。

  • トークンのリフレッシュ
    https://api.invox.jp/oauth2/token/
    リクエストメソッド: POST
    トークンのリフレッシュ(有効なアクセストークンの再取得)に使用します。

    ヘッダー

    • Authorization
      Basic Base64Encode(CLIENT_ID:CLIENT_SECRET)
      クライアントIDとクライアントシークレットをコロン(:)でつないだ文字列をBase64でエンコードした値を、ベーシックHTTP認証を介して認証ヘッダー(Authorization)に渡します。

    • Content-Type
      application/x-www-form-urlencoded

    パラメータ

    名前 内容
    grant_type 付与タイプ。refresh_token を指定します。
    client_id クライアントID
    refresh_token 更新トークン

    リクエストイメージ

    POST https://api.invox.jp/oauth2/token >
    Content-Type='application/x-www-form-urlencoded'
    Authorization=Basic ENCODED_CLIENT_ID_AND_SECRET
    
    grant_type=refresh_token&
    client_id=CLIENT_ID&
    refresh_token=REFRESH_TOKEN
    

    レスポンス内容

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "access_token": "ACCESS_TOKEN",
        "expires_in": 36000,
        "token_type": "Bearer",
        "scope": "read write",
        "refresh_token": "REFRESH_TOKEN"
    }
    

    ※リフレッシュされたアクセストークンの有効期限はexpires_inで返却された値(秒)です。  リフレッシュトークン(更新トークン)の有効期限はありません。

  • トークンの取り消し
    https://api.invox.jp/oauth2/revoke_token/
    リクエストメソッド: POST
    不要となったアクセストークンの取り消しに使用します。

    ヘッダー

    • Content-Type
      application/x-www-form-urlencoded

    パラメータ

    名前 内容
    token アクセストークン
    client_id クライアントID
    client_secret クライアントシークレット

    リクエストイメージ

    POST https://api.invox.jp/oauth2/revoke_token >
    Content-Type='application/x-www-form-urlencoded'
    
    token=ACCESS_TOKEN
    client_id=CLIENT_ID
    client_secret=CLIENT_SECRET
    

    レスポンス内容

    HTTP/1.1 200 OK
    

リクエスト共通仕様

ヘッダー

トークン

Bearerスキームでトークン認証を行います。

データフォーマット

Content-Type='application/json'

接続手順例

API接続の事前準備(invox電子帳簿保存の場合)

1. invox電子帳簿保存のご契約内容を確認します

プロフェッショナルプランによるご契約が必要です。

設定 > サービス > サービス・プラン設定 よりご確認ください。

2. 接続用ユーザーの用意します

invox電子帳簿保存にログイン可能なユーザーを登録してください。該当ユーザーによりアップロードされた書類として扱われます(接続用ユーザーを削除するとAPI接続ができなくなります)。

設定 > スタッフ より設定・確認可能です。

3. 企業IDを確認します

API接続時に「企業ID」が必要となります。

設定 > 会社 より確認可能です(システムが自動採番します。任意の値に変更はできません)。

APIを使った認証から登録(invox電子帳簿保存の場合)

1. 認可コード取得(初回のみ必要)

1-1. アクセス用URL(赤字部分含め弊社より提供)にアクセスします
https://api.invox.jp/oauth2/authorize/?response_type={response_type}&client_id={クライアントID}&redirect_uri={リダイレクトURI}&scope={scope}&state={state}
1-2. 事前準備で確認した接続用ユーザーでログオンします
1-3. アクセス許可を行います(invox電子帳簿保存の「書類の登録」が表示されていることを確認してください)
1-4. 認可コードを取得します

リダイレクト先に遷移した後、アドレスバーに表示された内容を保存してください(code=以降の文字列が認可コードです)。

認可コードは1分程度で失効しますので、すぐに「2.トークンの取得」を実施してください。

失効した場合は、再度1-1. からやり直して認可コードを取得してください。

2. トークンの取得

2-a. アクセストークンの取得例

curlコマンドの実行サンプル

curl -X POST -H "Authorization: Basic {クライアントIDとクライアントシークレットをコロン(:)でつないだ文字列をBase64でエンコードした値}"
  -H "Content-Type: application/x-www-form-urlencoded" "https://api.invox.jp/oauth2/token/"
  -d "grant_type=authorization_code"
  -d "client_id={クライアントID}"
  -d "redirect_uri={リダイレクトURI}"
  -d "code={1.で取得した認可コード}"

実行例

応答例(「アクセストークン」と「リフレッシュトークン」が返されます)

2-b. トークンのリフレッシュ例(トークンの期限切れ時に行ってください)

curlコマンドの実行サンプル

curl -X POST -H "Authorization: Basic {クライアントIDとクライアントシークレットをコロン(:)でつないだ文字列をBase64でエンコードした値}"
  -H "Content-Type: application/x-www-form-urlencoded" "https://api.invox.jp/oauth2/token/"
  -d "grant_type=refresh_token"
  -d "client_id={クライアントID}"
  -d "refresh_token={リフレッシュトークン}"
  1. と同様に「アクセストークン」と「リフレッシュトークン」が返されます

3. APIによる電子帳簿保存の書類登録

  1. で取得した「トークン」と事前準備で確認した「企業ID」が必要となります。

以下、python3 による簡易スクリプト例です。別途「sample.pdf」ファイルを用意します。

import base64
import json
import requests

def main():
  headers = {
    "Authorization: Bearer {アクセストークン}",
    "content-type: application/json",
  }
  url = "https://api.invox.jp/api/public/e_storage"

  file_content = open("sample.pdf", "rb").read()
  data = {
    "invox_company_code": "{企業ID}",
    "e_storage": {
      "doc_type": "見積書(受領)",
      "entry_method": "user",
      "file_name": "sample.pdf",
      "file_content": base64.b64encode(file_content).decode("utf-8"),
      "partner_name": "partner_name",
      "transaction_date": "2023/07/01",
      "transaction_amount": "123456",
      "currency_code": "JPY",
      "staff_name": "staff",
    }
  }
  res = requests.post(url, headers=headers, data=json.dumps(data))

if __name__ == "__main__":
  main()

レスポンス例:書類IDと書類URLが返却されます

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "DOCUMENT_ID",
  "url": "DOCUMENT_URL",
}

4. 登録の確認

invox電子帳簿保存にログオンして書類が登録されていることを確認してください。

検索条件の「取込経路」が「API」で検索される書類がAPIによって登録されたものになります。

FAQ

  • Q. invox APIのOAth2.0の利用方法について教えてください

    • A. 以下手順となります。(事前にクライアントIDとクライアントシークレットを取得してください)
      1. クライアントIDを使用して、認可コードを取得
      2. 認可コード、クライアントID、シークレットを使用して、アクセストークンを取得
      3. アクセストークンを使ってAPIを利用
      4. アクセストークンの利用期限が切れた場合は、リフレッシュトークン、クライアントID、シークレットを使用してトークンのリフレッシュを行い、アクセストークンを更新
      • 以後3.および4.を繰り返しご利用ください(1.,2.の手順は初回のみ)
  • Q. コールバックURI(redirect_uri)はどのように指定すればよいですか?

    • A. ご希望されるURIがある場合は、API利用時にお申し出ください。特にない場合は、invoxのログイン画面を設定いたします。
  • Q. トークンの有効期限はどのくらいですか?

    • A. アクセストークンの有効期限は36000秒(10時間)です。リフレッシュトークン(更新トークン)の有効期限はありません。
  • Q. トークンの有効期限が切れた場合はどうすればよいですか?

    • A. トークンのリフレッシュにより有効なアクセストークン(有効期限10時間)を取得することができます。
  • Q. invox電子帳簿保存 書類取込を利用するにはどのようなプランが必要ですか?

    • A. プロフェッショナルプランのご契約が必要です。
  • Q. invox電子帳簿保存 書類取込で複数の書類を1度に取り込みすることはできますか?

    • A. できません。1度に1書類の取り込みとなります。
  • Q. invox電子帳簿保存 書類取込で取込可能なファイルの種類に制限はありますか?

    • A. ファイルの種類に制限はありません。ただし、画像ファイル(jpg、png、gif、bmp、tiff)とPDF以外はinvox電子帳簿保存上で画像イメージを表示することはできません。
  • Q. invox電子帳簿保存 書類取込で取込可能なファイルサイズの制限はありますか?

    • A. ファイル含め、リクエストの最大サイズを50メガバイトに制限しております。
  • Q. invox電子帳簿保存に取込済みの書類データを取得するAPIはありますか?

    • A. ありません。書類データの確認はinvox電子帳簿保存上で行ってください。

invox受取請求書

invox受取請求書の機能を提供します。

請求書登録

Authorizations:
OAuth2
Request Body schema: multipart/form-data
  • 請求書ファイルが請求書として認識されなかった場合、以下の項目の入力値は反映されません。 請求日、支払期限、仕入先コード、登録番号、通貨コード、請求金額、課税10%(税込) 、課税10%(消費税) 、課税8%(税込) 、課税8%(消費税)、非課税、不課税、源泉徴収
  • マスタに該当するデータがない場合、以下の項目は反映されません。 部門コード、プロジェクトコード、担当者のスタッフコード、工種コード
  • 金額入力時は請求金額と内訳金額を合わせる必要があります。計算式は以下の通り 課税10%(税込) + 課税8%(税込) + 非課税 + 不課税 - 源泉徴収 = 請求金額
invox_company_code
required
string

企業ID

file
required
binary

請求書ファイル(ファイル形式:pdf,jpeg,png)

required
object
entry_method
required
string

データ化方法

  • ocr - AI OCR
  • operator - オペレーター入力
  • auto - 自動判定
invoice_date
string

請求日(フォーマットは「YYYY-MM-DD」「YYYY/MM/DD」「YYYYMMDD」のいずれかとなります)

payment_due_date
string

支払期限(フォーマットは「YYYY-MM-DD」「YYYY/MM/DD」「YYYYMMDD」のいずれかとなります)

supplier_code
string

仕入先コード データ化方法がocrの場合のみ反映されます

corporate_tax_no
string

登録番号

department_code
string

部門コード

project_code
string

プロジェクトコード

staff_code
string

担当者のスタッフコード

extension_param1
string

拡張項目1

extension_param2
string

拡張項目2

extension_param3
string

拡張項目3

extension_param4
string

拡張項目4

extension_param5
string

拡張項目5

construction_type
string

工種コード

voucher_no
string

伝票No

currency_code
string

通貨コード

amt_invoice
number

請求金額

amt_taxin10
number

課税10%(税込) 入力時は課税10%(消費税)の入力が必須となります。

amt_tax10
number

課税10%(消費税) 入力時は課税10%(税込)の入力が必須となります。

amt_taxin8
number

課税8%(税込) 入力時は課税8%(消費税)の入力が必須となります。

amt_tax8
number

課税8%(消費税) 入力時は課税8%(税込)の入力が必須となります。

amt_non_taxable
number

非課税

amt_un_taxable
number

不課税

amt_withholding_tax
number

源泉徴収

memo
string

メモ

Responses

Response samples

Content type
application/json
{
  • "invoice_id": "string"
}

添付ファイル登録

Authorizations:
OAuth2
Request Body schema: multipart/form-data
invox_company_code
required
string

企業ID

invoice_id
required
string

請求書ID

file
required
binary

添付ファイル

Responses

Response samples

Content type
application/json
{ }

ワークフロー申請

API経由でワークフローの申請を行う場合、以下の制限があります。
・承認パスの全てのステップがスキップされる場合、申請はできません。

Authorizations:
OAuth2
Request Body schema: application/json
invox_company_code
required
string

企業ID

invoice_id
required
string

請求書ID

appr_path_id
number

承認パスID

staff_code
required
string

申請スタッフコード

Responses

Request samples

Content type
application/json
{
  • "invox_company_code": "string",
  • "invoice_id": "string",
  • "appr_path_id": 0,
  • "staff_code": "string"
}

Response samples

Content type
application/json
{ }

invox電子帳簿保存

invox電子帳簿保存の書類取込機能を提供します。

書類取り込み

Authorizations:
OAuth2
Request Body schema: application/json

以下の場合には、指定された値は無視されて、取り込み処理が継続されます。

  • 必須項目以外は、不適切な値の場合(型の不一致、フォーマットが不適切など)

  • マスタ参照を行う項目(対象は以下項目)は、一意にデータを特定できない場合

    対象項目:取引コード、取引名、通貨コード、部門コード、部門名、プロジェクトコード、プロジェクト名、担当者コード、担当者名、タグ名、拡張項目(汎用マスタの場合)

invox_company_code
required
string

企業ID

object
doc_type
required
string

書類名

entry_method
required
string (EntryMethodEnum)
Enum: "user" "ocr" "operator"
  • user - セルフ入力
  • ocr - AI OCR
  • operator - オペレーター入力
file_name
required
string <= 250 characters

ファイル名(拡張子でファイルの種類を判定します。画像ファイル以外はinvox電子帳簿保存上で「NO IMAGE」書類となります。)

file_content
required
string

ファイル内容(base64エンコード)

transaction_code
string or null

取引コード

transaction_name
string or null

取引名(「取引コード」が指定されている場合には、「取引コード」が優先されます)

partner_name
string or null

取引先名(250文字より長い部分は切り捨てます)

corporate_tax_no
string or null

登録番号(適格請求書発行事業者の登録番号です。「取引先名」が未指定の場合に、この登録番号から取得した名称が取引先名として設定されます)

transaction_amount
string or null

取引金額(小数点以下が3桁、全部で15桁が制限となります)

currency_code
string or null <= 3 characters
Default: "JPY"

通貨コード(日本円:JPY、米ドル:USD... 未指定の場合は日本円になります)

transaction_date
string or null

取引日(フォーマットは「YYYY-MM-DD」「YYYY/MM/DD」「YYYYMMDD」のいずれかとなります)

department_code
string or null

部門コード

department_name
string or null

部門名(「部門コード」が指定されている場合には、「部門コード」が優先されます)

project_code
string or null

プロジェクトコード

project_name
string or null

プロジェクト名(「プロジェクトコード」が指定されている場合には、「プロジェクトコード」が優先されます)

staff_code
string or null

担当者コード

staff_name
string or null

担当者名(「担当者コード」が指定されている場合には、「担当者コード」が優先されます)

tag
string or null

タグ(単一指定)

tags
Array of strings or null

タグ名(複数指定) 単一指定、複数指定が同時に指定されても共に取り込みます

voucher_number
string or null

伝票番号(30文字より長い部分は切り捨てます)

extension_param1
string or null

拡張項目1

拡張項目はinvox電子帳簿保存側で設定された「入力形式」によって挙動が変わります

  • 日付:フォーマットは「YYYY-MM-DD」「YYYY/MM/DD」「YYYYMMDD」のいずれかとなります
  • 選択(汎用マスタ):対応する汎用マスタの名称と完全一致
  • 上記以外は、そのまま取り込みされます(250文字より長い部分は切り捨てます)
extension_param2
string or null

拡張項目2

extension_param3
string or null

拡張項目3

extension_param4
string or null

拡張項目4

extension_param5
string or null

拡張項目5

extension_param6
string or null

拡張項目6

extension_param7
string or null

拡張項目7

extension_param8
string or null

拡張項目8

extension_param9
string or null

拡張項目9

extension_param10
string or null

拡張項目10

Responses

Request samples

Content type
application/json
{
  • "invox_company_code": "string",
  • "e_storage": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "url": "string"
}