APIリファレンス運営会社の経費

運営会社の経費

経費の記録・集計・削除・復元と、証憑の情報

GET/v1/expenses

経費を一覧で取得する

この事業が参照できる経費だけを返します。分類は保存記録であり税務上の判断を保証しません。証憑の秘密URLや内部所有者IDは返しません。

クエリ

  • cursorstring

    100文字まで

  • limitinteger

    1〜100

  • externalRefstring

    200文字まで

  • querystring

    200文字まで

  • categoryenum
    TRAVEL_AND_TRANSPORTATIONCOMMUNICATIONENTERTAINMENTCONSUMABLEBOOKS_AND_EDUCATIONADVERTISINGRENTUTILITYOUTSOURCINGTAX_AND_DUESREPAIROTHER
  • projectIdstring

    100文字まで

  • orderIdstring

    100文字まで

  • fromstring (date-time)
  • untilstring (date-time)

返る項目data の中身 · 200

  • idstring
  • externalRefstring | null
  • titlestring
  • amountinteger
  • currencystring
  • expenseDatestring (date-time)
  • categoryenum | null
    TRAVEL_AND_TRANSPORTATIONCOMMUNICATIONENTERTAINMENTCONSUMABLEBOOKS_AND_EDUCATIONADVERTISINGRENTUTILITYOUTSOURCINGTAX_AND_DUESREPAIROTHER
  • vendorstring | null
  • paymentMethodenum | null
    CASHCREDIT_CARDBANK_TRANSFERDIRECT_DEBITE_MONEYOTHER
  • memostring | null
  • orderIdstring | null
  • projectIdstring | null
  • createdAtstring (date-time)
  • updatedAtstring (date-time)

起こりうるエラー共通のエラー

  • 400invalid_request

    送った値が正しくない。message にどこが違うかが入ります

  • 403insufficient_scope

    キーにこの入口の権限(scope)が付いていない。requiredScopes に必要な権限が入ります

GET/v1/expenses
curl https://tooon.app/api/v1/expenses \
  -H "Authorization: Bearer $TOOON_API_KEY"
レスポンス
{
  "data": [
    {
      "id": "clx8k2m0a0001",
      "externalRef": "staff-0001",
      "title": "Webサイト制作の業務委託",
      "amount": 100000,
      "currency": "JPY",
      "expenseDate": "2026-11-01T09:00:00.000Z",
      "category": "TRAVEL_AND_TRANSPORTATION",
      "vendor": "…",
      "paymentMethod": "CASH",
      "memo": "…",
      "orderId": "clx8k2m0a0001",
      "projectId": "clx8k2m0a0001",
      "createdAt": "2026-11-01T09:00:00.000Z",
      "updatedAt": "2026-11-01T09:00:00.000Z"
    }
  ],
  "nextCursor": null
}
POST/v1/expenses

経費を登録する

名称・税込の円金額・発生日時で手動登録します。通貨はJPYです。externalRefは事業内で一意で、同じ内容なら既存記録、異なる内容は409です。新規経費は事業全体に置き、任意の案件・プロジェクトの参照制限も引き継ぎます。支払い・メール・公開は行いません。

送る項目JSON · 11項目

  • titlestring必須

    200文字まで

  • amountinteger必須

    0〜2,147,483,647

  • expenseDatestring (date-time)必須
  • categoryenum | null
    TRAVEL_AND_TRANSPORTATIONCOMMUNICATIONENTERTAINMENTCONSUMABLEBOOKS_AND_EDUCATIONADVERTISINGRENTUTILITYOUTSOURCINGTAX_AND_DUESREPAIROTHER
  • vendorstring | null

    200文字まで

  • paymentMethodenum | null
    CASHCREDIT_CARDBANK_TRANSFERDIRECT_DEBITE_MONEYOTHER
  • memostring | null

    2,000文字まで

  • orderIdstring | null

    100文字まで

  • projectIdstring | null

    100文字まで

  • currency"JPY"
  • externalRefstring

    200文字まで

返る項目data の中身 · 200

  • idstring
  • externalRefstring | null
  • titlestring
  • amountinteger
  • currencystring
  • expenseDatestring (date-time)
  • categoryenum | null
    TRAVEL_AND_TRANSPORTATIONCOMMUNICATIONENTERTAINMENTCONSUMABLEBOOKS_AND_EDUCATIONADVERTISINGRENTUTILITYOUTSOURCINGTAX_AND_DUESREPAIROTHER
  • vendorstring | null
  • paymentMethodenum | null
    CASHCREDIT_CARDBANK_TRANSFERDIRECT_DEBITE_MONEYOTHER
  • memostring | null
  • orderIdstring | null
  • projectIdstring | null
  • createdAtstring (date-time)
  • updatedAtstring (date-time)

起こりうるエラー共通のエラー

  • 400invalid_request

    送った値が正しくない。message にどこが違うかが入ります

  • 403insufficient_scope

    キーにこの入口の権限(scope)が付いていない。requiredScopes に必要な権限が入ります

POST/v1/expenses
curl -X POST https://tooon.app/api/v1/expenses \
  -H "Authorization: Bearer $TOOON_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "Webサイト制作の業務委託",
  "amount": 100000,
  "expenseDate": "2026-11-01T09:00:00.000Z",
  "externalRef": "staff-0001"
}'
レスポンス
{
  "data": {
    "id": "clx8k2m0a0001",
    "externalRef": "staff-0001",
    "title": "Webサイト制作の業務委託",
    "amount": 100000,
    "currency": "JPY",
    "expenseDate": "2026-11-01T09:00:00.000Z",
    "category": "TRAVEL_AND_TRANSPORTATION",
    "vendor": "…",
    "paymentMethod": "CASH",
    "memo": "…",
    "orderId": "clx8k2m0a0001",
    "projectId": "clx8k2m0a0001",
    "createdAt": "2026-11-01T09:00:00.000Z",
    "updatedAt": "2026-11-01T09:00:00.000Z"
  }
}
GET/v1/expenses/deleted

削除済みの経費を一覧で取得する

復元権限で、この事業が現在参照できる削除済み経費だけを返します。証憑の秘密URL・内部所有者IDは返しません。取得だけでは復元しません。

クエリ

  • cursorstring

    100文字まで

  • limitinteger

    1〜100

返る項目data の中身 · 200

  • idstring
  • externalRefstring | null
  • titlestring
  • amountinteger
  • currencystring
  • expenseDatestring (date-time)
  • categoryenum | null
    TRAVEL_AND_TRANSPORTATIONCOMMUNICATIONENTERTAINMENTCONSUMABLEBOOKS_AND_EDUCATIONADVERTISINGRENTUTILITYOUTSOURCINGTAX_AND_DUESREPAIROTHER
  • vendorstring | null
  • paymentMethodenum | null
    CASHCREDIT_CARDBANK_TRANSFERDIRECT_DEBITE_MONEYOTHER
  • memostring | null
  • orderIdstring | null
  • projectIdstring | null
  • createdAtstring (date-time)
  • updatedAtstring (date-time)
  • state"deleted"

起こりうるエラー共通のエラー

  • 400invalid_request

    送った値が正しくない。message にどこが違うかが入ります

  • 403insufficient_scope

    キーにこの入口の権限(scope)が付いていない。requiredScopes に必要な権限が入ります

GET/v1/expenses/deleted
curl https://tooon.app/api/v1/expenses/deleted \
  -H "Authorization: Bearer $TOOON_API_KEY"
レスポンス
{
  "data": [
    {
      "id": "clx8k2m0a0001",
      "externalRef": "staff-0001",
      "title": "Webサイト制作の業務委託",
      "amount": 100000,
      "currency": "JPY",
      "expenseDate": "2026-11-01T09:00:00.000Z",
      "category": "TRAVEL_AND_TRANSPORTATION",
      "vendor": "…",
      "paymentMethod": "CASH",
      "memo": "…",
      "orderId": "clx8k2m0a0001",
      "projectId": "clx8k2m0a0001",
      "createdAt": "2026-11-01T09:00:00.000Z",
      "updatedAt": "2026-11-01T09:00:00.000Z",
      "state": "deleted"
    }
  ],
  "nextCursor": null
}
GET/v1/expenses/summary

期間内の経費を分類別に集計する

fromを含みuntilを含まないUTC期間(最大366日)で、現在参照できる非削除経費だけを集計します。currencyは既定JPYで、異なる通貨を合算・換算しません。金額は保存された整数値で、税額や控除額の計算ではありません。集計中に結果が変わった場合は409です。

クエリ

  • fromstring (date-time)必須
  • untilstring (date-time)必須
  • currencystring

返る項目data の中身 · 200

  • fromstring (date-time)
  • untilstring (date-time)
  • currencystring
  • totalAmountinteger

    -9,007,199,254,740,991〜9,007,199,254,740,991

  • countinteger

    0〜9,007,199,254,740,991

  • byCategoryobject[]

    13以下件

    中の項目 3
    • categoryenum | null
      TRAVEL_AND_TRANSPORTATIONCOMMUNICATIONENTERTAINMENTCONSUMABLEBOOKS_AND_EDUCATIONADVERTISINGRENTUTILITYOUTSOURCINGTAX_AND_DUESREPAIROTHER
    • amountinteger

      -9,007,199,254,740,991〜9,007,199,254,740,991

    • countinteger

      0〜9,007,199,254,740,991

起こりうるエラー共通のエラー

  • 400invalid_request

    送った値が正しくない。message にどこが違うかが入ります

  • 403insufficient_scope

    キーにこの入口の権限(scope)が付いていない。requiredScopes に必要な権限が入ります

GET/v1/expenses/summary
curl https://tooon.app/api/v1/expenses/summary \
  -H "Authorization: Bearer $TOOON_API_KEY"
レスポンス
{
  "data": {
    "from": "2026-11-01T09:00:00.000Z",
    "until": "2026-11-01T09:00:00.000Z",
    "currency": "JPY",
    "totalAmount": 100000,
    "count": 0,
    "byCategory": [
      {
        "category": "TRAVEL_AND_TRANSPORTATION",
        "amount": 100000,
        "count": 0
      }
    ]
  }
}
GET/v1/expenses/{id}

経費を取得する

パスの値

  • idstring必須

    100文字まで

返る項目data の中身 · 200

  • idstring
  • externalRefstring | null
  • titlestring
  • amountinteger
  • currencystring
  • expenseDatestring (date-time)
  • categoryenum | null
    TRAVEL_AND_TRANSPORTATIONCOMMUNICATIONENTERTAINMENTCONSUMABLEBOOKS_AND_EDUCATIONADVERTISINGRENTUTILITYOUTSOURCINGTAX_AND_DUESREPAIROTHER
  • vendorstring | null
  • paymentMethodenum | null
    CASHCREDIT_CARDBANK_TRANSFERDIRECT_DEBITE_MONEYOTHER
  • memostring | null
  • orderIdstring | null
  • projectIdstring | null
  • createdAtstring (date-time)
  • updatedAtstring (date-time)

起こりうるエラー共通のエラー

  • 403insufficient_scope

    キーにこの入口の権限(scope)が付いていない。requiredScopes に必要な権限が入ります

  • 404not_found

    対象がない、またはこのワークスペースのものではない

GET/v1/expenses/{id}
curl https://tooon.app/api/v1/expenses/clx8k2m0a0001 \
  -H "Authorization: Bearer $TOOON_API_KEY"
レスポンス
{
  "data": {
    "id": "clx8k2m0a0001",
    "externalRef": "staff-0001",
    "title": "Webサイト制作の業務委託",
    "amount": 100000,
    "currency": "JPY",
    "expenseDate": "2026-11-01T09:00:00.000Z",
    "category": "TRAVEL_AND_TRANSPORTATION",
    "vendor": "…",
    "paymentMethod": "CASH",
    "memo": "…",
    "orderId": "clx8k2m0a0001",
    "projectId": "clx8k2m0a0001",
    "createdAt": "2026-11-01T09:00:00.000Z",
    "updatedAt": "2026-11-01T09:00:00.000Z"
  }
}
PATCH/v1/expenses/{id}

経費を編集する

expectedUpdatedAtには直前のGETの値を指定します。古い版は409です。省略項目は保持し、任意項目はnullで解除できます。外部参照・所有者・通貨・ユニット・証憑は変更しません。JPY以外の既存記録は参照のみです。支払実行や銀行の記録は変更しません。

パスの値

  • idstring必須

    100文字まで

送る項目JSON · 10項目

  • titlestring

    200文字まで

  • amountinteger

    0〜2,147,483,647

  • expenseDatestring (date-time)
  • categoryenum | null
    TRAVEL_AND_TRANSPORTATIONCOMMUNICATIONENTERTAINMENTCONSUMABLEBOOKS_AND_EDUCATIONADVERTISINGRENTUTILITYOUTSOURCINGTAX_AND_DUESREPAIROTHER
  • vendorstring | null

    200文字まで

  • paymentMethodenum | null
    CASHCREDIT_CARDBANK_TRANSFERDIRECT_DEBITE_MONEYOTHER
  • memostring | null

    2,000文字まで

  • orderIdstring | null

    100文字まで

  • projectIdstring | null

    100文字まで

  • expectedUpdatedAtstring (date-time)必須

返る項目data の中身 · 200

  • idstring
  • externalRefstring | null
  • titlestring
  • amountinteger
  • currencystring
  • expenseDatestring (date-time)
  • categoryenum | null
    TRAVEL_AND_TRANSPORTATIONCOMMUNICATIONENTERTAINMENTCONSUMABLEBOOKS_AND_EDUCATIONADVERTISINGRENTUTILITYOUTSOURCINGTAX_AND_DUESREPAIROTHER
  • vendorstring | null
  • paymentMethodenum | null
    CASHCREDIT_CARDBANK_TRANSFERDIRECT_DEBITE_MONEYOTHER
  • memostring | null
  • orderIdstring | null
  • projectIdstring | null
  • createdAtstring (date-time)
  • updatedAtstring (date-time)

起こりうるエラー共通のエラー

  • 400invalid_request

    送った値が正しくない。message にどこが違うかが入ります

  • 403insufficient_scope

    キーにこの入口の権限(scope)が付いていない。requiredScopes に必要な権限が入ります

  • 404not_found

    対象がない、またはこのワークスペースのものではない

PATCH/v1/expenses/{id}
curl -X PATCH https://tooon.app/api/v1/expenses/clx8k2m0a0001 \
  -H "Authorization: Bearer $TOOON_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "Webサイト制作の業務委託",
  "expectedUpdatedAt": "2026-11-01T09:00:00.000Z"
}'
レスポンス
{
  "data": {
    "id": "clx8k2m0a0001",
    "externalRef": "staff-0001",
    "title": "Webサイト制作の業務委託",
    "amount": 100000,
    "currency": "JPY",
    "expenseDate": "2026-11-01T09:00:00.000Z",
    "category": "TRAVEL_AND_TRANSPORTATION",
    "vendor": "…",
    "paymentMethod": "CASH",
    "memo": "…",
    "orderId": "clx8k2m0a0001",
    "projectId": "clx8k2m0a0001",
    "createdAt": "2026-11-01T09:00:00.000Z",
    "updatedAt": "2026-11-01T09:00:00.000Z"
  }
}
GET/v1/expenses/{id}/evidence

経費に付いた証憑を一覧で確認する

現在参照できる経費に付いた証憑の名前・種類・サイズ・日時だけを返します。証憑自身のユニット・関連案件の権限も確認します。ファイルの保存URL・内部所有者・登録者・メモは返さず、ファイル配信・変更・削除を行いません。

パスの値

  • idstring必須

    100文字まで

クエリ

  • cursorstring

    100文字まで

  • limitinteger

    1〜100

返る項目data の中身 · 200

  • idstring
  • fileNamestring
  • fileTypestring
  • fileSizeinteger
  • createdAtstring (date-time)
  • updatedAtstring (date-time)

起こりうるエラー共通のエラー

  • 400invalid_request

    送った値が正しくない。message にどこが違うかが入ります

  • 403insufficient_scope

    キーにこの入口の権限(scope)が付いていない。requiredScopes に必要な権限が入ります

  • 404not_found

    対象がない、またはこのワークスペースのものではない

GET/v1/…/{id}/evidence
curl https://tooon.app/api/v1/expenses/clx8k2m0a0001/evidence \
  -H "Authorization: Bearer $TOOON_API_KEY"
レスポンス
{
  "data": [
    {
      "id": "clx8k2m0a0001",
      "fileName": "…",
      "fileType": "…",
      "fileSize": 0,
      "createdAt": "2026-11-01T09:00:00.000Z",
      "updatedAt": "2026-11-01T09:00:00.000Z"
    }
  ],
  "nextCursor": null
}
POST/v1/expenses/{id}/delete-preview

経費を削除する前に内容を確認する

15分有効な確認IDを作ります。連携先はreviewの経費本文・現在状態・削除後の影響を本人へ表示し、確認操作の記録を保持してください。この操作だけでは経費の状態を変えません。

パスの値

  • idstring必須

    100文字まで

送る項目JSON · 2項目

  • expectedUpdatedAtstring (date-time)必須
  • commentstring | null

    2,000文字まで

返る項目data の中身 · 200

  • confirmationIdstring
  • expectedActorIdstring
  • reviewHashstring
  • expiresAtstring (date-time)
  • reviewobject
    中の項目 4
    • actionenum
      deleterestore
    • expenseobject
      中の項目 15
      • idstring
      • externalRefstring | null
      • titlestring
      • amountinteger
      • currencystring
      • expenseDatestring (date-time)
      • categoryenum | null
        TRAVEL_AND_TRANSPORTATIONCOMMUNICATIONENTERTAINMENTCONSUMABLEBOOKS_AND_EDUCATIONADVERTISINGRENTUTILITYOUTSOURCINGTAX_AND_DUESREPAIROTHER
      • vendorstring | null
      • paymentMethodenum | null
        CASHCREDIT_CARDBANK_TRANSFERDIRECT_DEBITE_MONEYOTHER
      • memostring | null
      • orderIdstring | null
      • projectIdstring | null
      • createdAtstring (date-time)
      • updatedAtstring (date-time)
      • stateenum
        activedeleted
    • commentstring | null
    • effectsobject
      中の項目 5
      • stateenum
        activedeleted
      • includedInSummaryboolean
      • preservesEvidencetrue
      • changesPaymentfalse
      • delivery"none"

起こりうるエラー共通のエラー

  • 400invalid_request

    送った値が正しくない。message にどこが違うかが入ります

  • 403insufficient_scope

    キーにこの入口の権限(scope)が付いていない。requiredScopes に必要な権限が入ります

  • 404not_found

    対象がない、またはこのワークスペースのものではない

POST/v1/…/{id}/delete-preview
curl -X POST https://tooon.app/api/v1/expenses/clx8k2m0a0001/delete-preview \
  -H "Authorization: Bearer $TOOON_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "expectedUpdatedAt": "2026-11-01T09:00:00.000Z"
}'
レスポンス
{
  "data": {
    "confirmationId": "clx8k2m0a0001",
    "expectedActorId": "clx8k2m0a0001",
    "reviewHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "expiresAt": "2026-11-01T09:00:00.000Z",
    "review": {
      "action": "delete",
      "expense": {
        "id": "clx8k2m0a0001",
        "externalRef": "staff-0001",
        "title": "Webサイト制作の業務委託",
        "amount": 100000,
        "currency": "JPY",
        "expenseDate": "2026-11-01T09:00:00.000Z",
        "category": "TRAVEL_AND_TRANSPORTATION",
        "vendor": "…",
        "paymentMethod": "CASH",
        "memo": "…",
        "orderId": "clx8k2m0a0001",
        "projectId": "clx8k2m0a0001",
        "createdAt": "2026-11-01T09:00:00.000Z",
        "updatedAt": "2026-11-01T09:00:00.000Z",
        "state": "active"
      },
      "comment": "…",
      "effects": {
        "state": "active",
        "includedInSummary": true,
        "preservesEvidence": true,
        "changesPayment": false,
        "delivery": "none"
      }
    }
  }
}
POST/v1/expenses/{id}/delete-confirmed

本人が確認した経費を削除する

確認した経費を論理削除します。本人・所有者・キー・操作・内容hash・版・期限を検証し、状態変更と確認の消費を一度だけ保存します。証憑接続・外部参照・金額・通貨・支払いを変更せず、メールも送りません。同じ確認の再送はその操作時の結果を返し、後の別操作を巻き戻しません。現在の状態は一覧で確認してください。

パスの値

  • idstring必須

    100文字まで

送る項目JSON · 5項目

  • confirmationIdstring必須

    200文字まで

  • reviewHashstring必須
  • confirmedBystring必須

    200文字まで

  • confirmedAtstring (date-time)必須
  • confirmationReferencestring必須

    200文字まで

返る項目data の中身 · 200

  • expenseIdstring
  • confirmationIdstring
  • reviewHashstring
  • actionenum
    deleterestore
  • appliedAtstring (date-time)
  • delivery"none"

起こりうるエラー共通のエラー

  • 400invalid_request

    送った値が正しくない。message にどこが違うかが入ります

  • 403insufficient_scope

    キーにこの入口の権限(scope)が付いていない。requiredScopes に必要な権限が入ります

  • 404not_found

    対象がない、またはこのワークスペースのものではない

POST/v1/…/{id}/delete-confirmed
curl -X POST https://tooon.app/api/v1/expenses/clx8k2m0a0001/delete-confirmed \
  -H "Authorization: Bearer $TOOON_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "confirmationId": "clx8k2m0a0001",
  "reviewHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "confirmedBy": "member-0001",
  "confirmedAt": "2026-11-01T09:00:00.000Z",
  "confirmationReference": "confirmation-0001"
}'
レスポンス
{
  "data": {
    "expenseId": "clx8k2m0a0001",
    "confirmationId": "clx8k2m0a0001",
    "reviewHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "action": "delete",
    "appliedAt": "2026-11-01T09:00:00.000Z",
    "delivery": "none"
  }
}
POST/v1/expenses/{id}/restore-preview

経費を復元する前に内容を確認する

15分有効な確認IDを作ります。連携先はreviewの経費本文・現在状態・復元後の影響を本人へ表示し、確認操作の記録を保持してください。この操作だけでは経費の状態を変えません。

パスの値

  • idstring必須

    100文字まで

送る項目JSON · 2項目

  • expectedUpdatedAtstring (date-time)必須
  • commentstring | null

    2,000文字まで

返る項目data の中身 · 200

  • confirmationIdstring
  • expectedActorIdstring
  • reviewHashstring
  • expiresAtstring (date-time)
  • reviewobject
    中の項目 4
    • actionenum
      deleterestore
    • expenseobject
      中の項目 15
      • idstring
      • externalRefstring | null
      • titlestring
      • amountinteger
      • currencystring
      • expenseDatestring (date-time)
      • categoryenum | null
        TRAVEL_AND_TRANSPORTATIONCOMMUNICATIONENTERTAINMENTCONSUMABLEBOOKS_AND_EDUCATIONADVERTISINGRENTUTILITYOUTSOURCINGTAX_AND_DUESREPAIROTHER
      • vendorstring | null
      • paymentMethodenum | null
        CASHCREDIT_CARDBANK_TRANSFERDIRECT_DEBITE_MONEYOTHER
      • memostring | null
      • orderIdstring | null
      • projectIdstring | null
      • createdAtstring (date-time)
      • updatedAtstring (date-time)
      • stateenum
        activedeleted
    • commentstring | null
    • effectsobject
      中の項目 5
      • stateenum
        activedeleted
      • includedInSummaryboolean
      • preservesEvidencetrue
      • changesPaymentfalse
      • delivery"none"

起こりうるエラー共通のエラー

  • 400invalid_request

    送った値が正しくない。message にどこが違うかが入ります

  • 403insufficient_scope

    キーにこの入口の権限(scope)が付いていない。requiredScopes に必要な権限が入ります

  • 404not_found

    対象がない、またはこのワークスペースのものではない

POST/v1/…/{id}/restore-preview
curl -X POST https://tooon.app/api/v1/expenses/clx8k2m0a0001/restore-preview \
  -H "Authorization: Bearer $TOOON_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "expectedUpdatedAt": "2026-11-01T09:00:00.000Z"
}'
レスポンス
{
  "data": {
    "confirmationId": "clx8k2m0a0001",
    "expectedActorId": "clx8k2m0a0001",
    "reviewHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "expiresAt": "2026-11-01T09:00:00.000Z",
    "review": {
      "action": "delete",
      "expense": {
        "id": "clx8k2m0a0001",
        "externalRef": "staff-0001",
        "title": "Webサイト制作の業務委託",
        "amount": 100000,
        "currency": "JPY",
        "expenseDate": "2026-11-01T09:00:00.000Z",
        "category": "TRAVEL_AND_TRANSPORTATION",
        "vendor": "…",
        "paymentMethod": "CASH",
        "memo": "…",
        "orderId": "clx8k2m0a0001",
        "projectId": "clx8k2m0a0001",
        "createdAt": "2026-11-01T09:00:00.000Z",
        "updatedAt": "2026-11-01T09:00:00.000Z",
        "state": "active"
      },
      "comment": "…",
      "effects": {
        "state": "active",
        "includedInSummary": true,
        "preservesEvidence": true,
        "changesPayment": false,
        "delivery": "none"
      }
    }
  }
}
POST/v1/expenses/{id}/restore-confirmed

本人が確認した経費を復元する

確認した経費を論理復元します。本人・所有者・キー・操作・内容hash・版・期限を検証し、状態変更と確認の消費を一度だけ保存します。証憑接続・外部参照・金額・通貨・支払いを変更せず、メールも送りません。同じ確認の再送はその操作時の結果を返し、後の別操作を巻き戻しません。現在の状態は一覧で確認してください。

パスの値

  • idstring必須

    100文字まで

送る項目JSON · 5項目

  • confirmationIdstring必須

    200文字まで

  • reviewHashstring必須
  • confirmedBystring必須

    200文字まで

  • confirmedAtstring (date-time)必須
  • confirmationReferencestring必須

    200文字まで

返る項目data の中身 · 200

  • expenseIdstring
  • confirmationIdstring
  • reviewHashstring
  • actionenum
    deleterestore
  • appliedAtstring (date-time)
  • delivery"none"

起こりうるエラー共通のエラー

  • 400invalid_request

    送った値が正しくない。message にどこが違うかが入ります

  • 403insufficient_scope

    キーにこの入口の権限(scope)が付いていない。requiredScopes に必要な権限が入ります

  • 404not_found

    対象がない、またはこのワークスペースのものではない

POST/v1/…/{id}/restore-confirmed
curl -X POST https://tooon.app/api/v1/expenses/clx8k2m0a0001/restore-confirmed \
  -H "Authorization: Bearer $TOOON_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "confirmationId": "clx8k2m0a0001",
  "reviewHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "confirmedBy": "member-0001",
  "confirmedAt": "2026-11-01T09:00:00.000Z",
  "confirmationReference": "confirmation-0001"
}'
レスポンス
{
  "data": {
    "expenseId": "clx8k2m0a0001",
    "confirmationId": "clx8k2m0a0001",
    "reviewHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "action": "delete",
    "appliedAt": "2026-11-01T09:00:00.000Z",
    "delivery": "none"
  }
}
GET/v1/expenses/{id}/evidence/{evidenceId}

経費に付いた証憑の情報を取得する

指定した経費に付いた、現在参照可能な証憑のメタデータを返します。別の経費・事業の証憑や削除済み・参照不能な対象は返しません。ファイルのURL・本文・内部所有者・登録者・メモは含めません。

パスの値

  • idstring必須

    100文字まで

  • evidenceIdstring必須

    100文字まで

返る項目data の中身 · 200

  • idstring
  • fileNamestring
  • fileTypestring
  • fileSizeinteger
  • createdAtstring (date-time)
  • updatedAtstring (date-time)

起こりうるエラー共通のエラー

  • 403insufficient_scope

    キーにこの入口の権限(scope)が付いていない。requiredScopes に必要な権限が入ります

  • 404not_found

    対象がない、またはこのワークスペースのものではない

GET/v1/…/{id}/evidence/{evidenceId}
curl https://tooon.app/api/v1/expenses/clx8k2m0a0001/evidence/clx8k2m0a0001 \
  -H "Authorization: Bearer $TOOON_API_KEY"
レスポンス
{
  "data": {
    "id": "clx8k2m0a0001",
    "fileName": "…",
    "fileType": "…",
    "fileSize": 0,
    "createdAt": "2026-11-01T09:00:00.000Z",
    "updatedAt": "2026-11-01T09:00:00.000Z"
  }
}