取引合意

運営会社の合意内容を準備・確認し、連携先で提示する

GET/v1/agreements

取引合意の状態を一覧で取得する

この事業が依頼元の取引合意を返します。接続先の案件・取引の閲覧権限も確認します。合意本文は詳細APIで取得してください。相手側のTooonワークスペースの記録は含みません。

クエリ

  • statusenum
    draftsentviewedaccepteddeclinedrevisedcanceled
  • partnerIdstring

    100文字まで

  • partnerOrderIdstring

    100文字まで

  • externalRefstring

    200文字まで

  • cursorstring

    100文字まで

  • limitinteger

    1〜100

返る項目data の中身 · 200

  • idstring
  • revisionOfIdstring | null
  • externalRefstring | null
  • partnerIdstring
  • partnerOrderIdstring
  • statusenum
    draftsentviewedaccepteddeclinedrevisedcanceled
  • expiresAtstring | null
  • sentAtstring | null
  • viewedAtstring | null
  • acceptedAtstring | null
  • declinedAtstring | null
  • canceledAtstring | null
  • createdAtstring (date-time)
  • updatedAtstring (date-time)

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

  • 400invalid_request

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

  • 403insufficient_scope

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

GET/v1/agreements
curl https://tooon.app/api/v1/agreements \
  -H "Authorization: Bearer $TOOON_API_KEY"
レスポンス
{
  "data": [
    {
      "id": "clx8k2m0a0001",
      "revisionOfId": "clx8k2m0a0001",
      "externalRef": "staff-0001",
      "partnerId": "clx8k2m0a0001",
      "partnerOrderId": "clx8k2m0a0001",
      "status": "draft",
      "expiresAt": "2026-11-01T09:00:00.000Z",
      "sentAt": "2026-11-01T09:00:00.000Z",
      "viewedAt": "2026-11-01T09:00:00.000Z",
      "acceptedAt": "2026-11-01T09:00:00.000Z",
      "declinedAt": "2026-11-01T09:00:00.000Z",
      "canceledAt": "2026-11-01T09:00:00.000Z",
      "createdAt": "2026-11-01T09:00:00.000Z",
      "updatedAt": "2026-11-01T09:00:00.000Z"
    }
  ],
  "nextCursor": null
}
POST/v1/agreements

取引合意の下書きを作る

同じ事業の有効な発注先の条件から作成します。未送信・送信中・同意済みの合意がある場合は重複作成できません。externalRefは事業内で一意、同じ条件ID・message・期限の再送は同じ記録を返します。Idempotency-Keyも使ってください。相手への提示・送信・同意・支払いは行いません。

送る項目JSON · 4項目

  • buyerMessagestring | null

    10,000文字まで

  • expiresAtstring (date-time) | null
  • partnerOrderIdstring必須

    100文字まで

  • externalRefstring

    200文字まで

返る項目data の中身 · 200

  • idstring
  • revisionOfIdstring | null
  • externalRefstring | null
  • partnerIdstring
  • partnerOrderIdstring
  • statusenum
    draftsentviewedaccepteddeclinedrevisedcanceled
  • expiresAtstring | null
  • sentAtstring | null
  • viewedAtstring | null
  • acceptedAtstring | null
  • declinedAtstring | null
  • canceledAtstring | null
  • createdAtstring (date-time)
  • updatedAtstring (date-time)
  • partnerOrderUpdatedAtstring (date-time)
  • buyerMessagestring | null
  • initiatorSideenum
    buyerseller
  • receiverSideenum
    buyerseller
  • termsobject
    中の項目 3
    • buyerobject
      中の項目 1
      • namestring
    • partnerobject
      中の項目 2
      • namestring
      • companyNamestring | null
    • partnerOrderobject
      中の項目 11
      • titlestring
      • rolestring | null
      • scopestring | null
      • amountinteger
      • currencystring
      • isIncludingTaxboolean
      • taxRoundingMethodenum
        floorceilround
      • contractTermsstring | null
      • subcontractingPolicyenum
        not_setnot_allowedrequires_approvalallowed_without_disclosureallowed_with_vendor_disclosureallowed_with_budget_disclosure
      • startDatestring | null
      • endDatestring | null

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

  • 400invalid_request

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

  • 403insufficient_scope

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

POST/v1/agreements
curl -X POST https://tooon.app/api/v1/agreements \
  -H "Authorization: Bearer $TOOON_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "partnerOrderId": "clx8k2m0a0001",
  "externalRef": "staff-0001"
}'
レスポンス
{
  "data": {
    "id": "clx8k2m0a0001",
    "revisionOfId": "clx8k2m0a0001",
    "externalRef": "staff-0001",
    "partnerId": "clx8k2m0a0001",
    "partnerOrderId": "clx8k2m0a0001",
    "status": "draft",
    "expiresAt": "2026-11-01T09:00:00.000Z",
    "sentAt": "2026-11-01T09:00:00.000Z",
    "viewedAt": "2026-11-01T09:00:00.000Z",
    "acceptedAt": "2026-11-01T09:00:00.000Z",
    "declinedAt": "2026-11-01T09:00:00.000Z",
    "canceledAt": "2026-11-01T09:00:00.000Z",
    "createdAt": "2026-11-01T09:00:00.000Z",
    "updatedAt": "2026-11-01T09:00:00.000Z",
    "partnerOrderUpdatedAt": "2026-11-01T09:00:00.000Z",
    "buyerMessage": "内容をご確認ください",
    "initiatorSide": "buyer",
    "receiverSide": "buyer",
    "terms": {
      "buyer": {
        "name": "山田 太郎"
      },
      "partner": {
        "name": "山田 太郎",
        "companyName": "山田デザイン事務所"
      },
      "partnerOrder": {
        "title": "Webサイト制作の業務委託",
        "role": "…",
        "scope": "…",
        "amount": 100000,
        "currency": "JPY",
        "isIncludingTax": false,
        "taxRoundingMethod": "floor",
        "contractTerms": "…",
        "subcontractingPolicy": "not_set",
        "startDate": "2026-11-30",
        "endDate": "2026-11-30"
      }
    }
  }
}
GET/v1/agreements/{id}

保存された合意内容を取得する

名義・条件は保存済みsnapshotから返します。秘密URL、内部メモ、相手のIP・端末情報は返しません。登録情報が変わっても過去の合意は変わりません。

パスの値

  • idstring必須

    100文字まで

返る項目data の中身 · 200

  • idstring
  • revisionOfIdstring | null
  • externalRefstring | null
  • partnerIdstring
  • partnerOrderIdstring
  • statusenum
    draftsentviewedaccepteddeclinedrevisedcanceled
  • expiresAtstring | null
  • sentAtstring | null
  • viewedAtstring | null
  • acceptedAtstring | null
  • declinedAtstring | null
  • canceledAtstring | null
  • createdAtstring (date-time)
  • updatedAtstring (date-time)
  • partnerOrderUpdatedAtstring (date-time)
  • buyerMessagestring | null
  • initiatorSideenum
    buyerseller
  • receiverSideenum
    buyerseller
  • termsobject
    中の項目 3
    • buyerobject
      中の項目 1
      • namestring
    • partnerobject
      中の項目 2
      • namestring
      • companyNamestring | null
    • partnerOrderobject
      中の項目 11
      • titlestring
      • rolestring | null
      • scopestring | null
      • amountinteger
      • currencystring
      • isIncludingTaxboolean
      • taxRoundingMethodenum
        floorceilround
      • contractTermsstring | null
      • subcontractingPolicyenum
        not_setnot_allowedrequires_approvalallowed_without_disclosureallowed_with_vendor_disclosureallowed_with_budget_disclosure
      • startDatestring | null
      • endDatestring | null

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

  • 403insufficient_scope

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

  • 404not_found

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

GET/v1/agreements/{id}
curl https://tooon.app/api/v1/agreements/clx8k2m0a0001 \
  -H "Authorization: Bearer $TOOON_API_KEY"
レスポンス
{
  "data": {
    "id": "clx8k2m0a0001",
    "revisionOfId": "clx8k2m0a0001",
    "externalRef": "staff-0001",
    "partnerId": "clx8k2m0a0001",
    "partnerOrderId": "clx8k2m0a0001",
    "status": "draft",
    "expiresAt": "2026-11-01T09:00:00.000Z",
    "sentAt": "2026-11-01T09:00:00.000Z",
    "viewedAt": "2026-11-01T09:00:00.000Z",
    "acceptedAt": "2026-11-01T09:00:00.000Z",
    "declinedAt": "2026-11-01T09:00:00.000Z",
    "canceledAt": "2026-11-01T09:00:00.000Z",
    "createdAt": "2026-11-01T09:00:00.000Z",
    "updatedAt": "2026-11-01T09:00:00.000Z",
    "partnerOrderUpdatedAt": "2026-11-01T09:00:00.000Z",
    "buyerMessage": "内容をご確認ください",
    "initiatorSide": "buyer",
    "receiverSide": "buyer",
    "terms": {
      "buyer": {
        "name": "山田 太郎"
      },
      "partner": {
        "name": "山田 太郎",
        "companyName": "山田デザイン事務所"
      },
      "partnerOrder": {
        "title": "Webサイト制作の業務委託",
        "role": "…",
        "scope": "…",
        "amount": 100000,
        "currency": "JPY",
        "isIncludingTax": false,
        "taxRoundingMethod": "floor",
        "contractTerms": "…",
        "subcontractingPolicy": "not_set",
        "startDate": "2026-11-30",
        "endDate": "2026-11-30"
      }
    }
  }
}
PATCH/v1/agreements/{id}

取引合意の下書きを編集する

最新の下書きのみ編集できます。expectedUpdatedAtが古い場合は409。省略項目は保持し、nullで任意項目を消せます。refreshTerms:trueで現在の発注条件とこの事業の名義を取り込み直します。通常のmessage・期限の変更では保存済み条件を変えません。相手への提示・送信・同意は行いません。

パスの値

  • idstring必須

    100文字まで

送る項目JSON · 4項目

  • buyerMessagestring | null

    10,000文字まで

  • expiresAtstring (date-time) | null
  • expectedUpdatedAtstring (date-time)必須
  • refreshTermstrue

返る項目data の中身 · 200

  • idstring
  • revisionOfIdstring | null
  • externalRefstring | null
  • partnerIdstring
  • partnerOrderIdstring
  • statusenum
    draftsentviewedaccepteddeclinedrevisedcanceled
  • expiresAtstring | null
  • sentAtstring | null
  • viewedAtstring | null
  • acceptedAtstring | null
  • declinedAtstring | null
  • canceledAtstring | null
  • createdAtstring (date-time)
  • updatedAtstring (date-time)
  • partnerOrderUpdatedAtstring (date-time)
  • buyerMessagestring | null
  • initiatorSideenum
    buyerseller
  • receiverSideenum
    buyerseller
  • termsobject
    中の項目 3
    • buyerobject
      中の項目 1
      • namestring
    • partnerobject
      中の項目 2
      • namestring
      • companyNamestring | null
    • partnerOrderobject
      中の項目 11
      • titlestring
      • rolestring | null
      • scopestring | null
      • amountinteger
      • currencystring
      • isIncludingTaxboolean
      • taxRoundingMethodenum
        floorceilround
      • contractTermsstring | null
      • subcontractingPolicyenum
        not_setnot_allowedrequires_approvalallowed_without_disclosureallowed_with_vendor_disclosureallowed_with_budget_disclosure
      • startDatestring | null
      • endDatestring | null

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

  • 400invalid_request

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

  • 403insufficient_scope

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

  • 404not_found

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

PATCH/v1/agreements/{id}
curl -X PATCH https://tooon.app/api/v1/agreements/clx8k2m0a0001 \
  -H "Authorization: Bearer $TOOON_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "buyerMessage": "内容をご確認ください",
  "expectedUpdatedAt": "2026-11-01T09:00:00.000Z"
}'
レスポンス
{
  "data": {
    "id": "clx8k2m0a0001",
    "revisionOfId": "clx8k2m0a0001",
    "externalRef": "staff-0001",
    "partnerId": "clx8k2m0a0001",
    "partnerOrderId": "clx8k2m0a0001",
    "status": "draft",
    "expiresAt": "2026-11-01T09:00:00.000Z",
    "sentAt": "2026-11-01T09:00:00.000Z",
    "viewedAt": "2026-11-01T09:00:00.000Z",
    "acceptedAt": "2026-11-01T09:00:00.000Z",
    "declinedAt": "2026-11-01T09:00:00.000Z",
    "canceledAt": "2026-11-01T09:00:00.000Z",
    "createdAt": "2026-11-01T09:00:00.000Z",
    "updatedAt": "2026-11-01T09:00:00.000Z",
    "partnerOrderUpdatedAt": "2026-11-01T09:00:00.000Z",
    "buyerMessage": "内容をご確認ください",
    "initiatorSide": "buyer",
    "receiverSide": "buyer",
    "terms": {
      "buyer": {
        "name": "山田 太郎"
      },
      "partner": {
        "name": "山田 太郎",
        "companyName": "山田デザイン事務所"
      },
      "partnerOrder": {
        "title": "Webサイト制作の業務委託",
        "role": "…",
        "scope": "…",
        "amount": 100000,
        "currency": "JPY",
        "isIncludingTax": false,
        "taxRoundingMethod": "floor",
        "contractTerms": "…",
        "subcontractingPolicy": "not_set",
        "startDate": "2026-11-30",
        "endDate": "2026-11-30"
      }
    }
  }
}
POST/v1/agreements/{id}/presentation-preview

相手への提示前に合意内容を確認する

15分有効な確認IDと保存済みの条件・名義・相手・message・期限を返します。連携先は認証した依頼元本人に全内容を表示して確認を得てください。元の発注条件を取り込み直す場合は下書きでrefreshTermsを実行してから確認します。

パスの値

  • idstring必須

    200文字まで

送る項目JSON · 1項目

  • expectedUpdatedAtstring (date-time)必須

返る項目data の中身 · 200

  • confirmationIdstring
  • expectedActorIdstring
  • reviewHashstring
  • expiresAtstring (date-time)
  • reviewobject
    中の項目 2
    • agreementobject
      中の項目 7
      • idstring
      • revisionOfIdstring | null
      • partnerIdstring
      • partnerOrderIdstring
      • termsobject
        中の項目 3
        • buyerobject
          中の項目 1
          • namestring
        • partnerobject
          中の項目 2
          • namestring
          • companyNamestring | null
        • partnerOrderobject
          中の項目 11
          • titlestring
          • rolestring | null
          • scopestring | null
          • amountinteger
          • currencystring
          • isIncludingTaxboolean
          • taxRoundingMethodenum
            floorceilround
          • contractTermsstring | null
          • subcontractingPolicyenum
            not_setnot_allowedrequires_approvalallowed_without_disclosureallowed_with_vendor_disclosureallowed_with_budget_disclosure
          • startDatestring | null
          • endDatestring | null
      • buyerMessagestring | null
      • expiresAtstring | null
    • effectsobject
      中の項目 5
      • presentation"provider"
      • delivery"none"
      • acceptsAgreementfalse
      • activatesPartnerOrderfalse
      • createsPaymentRequestfalse

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

  • 400invalid_request

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

  • 403insufficient_scope

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

  • 404not_found

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

POST/v1/…/{id}/presentation-preview
curl -X POST https://tooon.app/api/v1/agreements/clx8k2m0a0001/presentation-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": {
      "agreement": {
        "id": "clx8k2m0a0001",
        "revisionOfId": "clx8k2m0a0001",
        "partnerId": "clx8k2m0a0001",
        "partnerOrderId": "clx8k2m0a0001",
        "terms": {
          "buyer": {
            "name": "山田 太郎"
          },
          "partner": {
            "name": "山田 太郎",
            "companyName": "山田デザイン事務所"
          },
          "partnerOrder": {
            "title": "Webサイト制作の業務委託",
            "role": "…",
            "scope": "…",
            "amount": 100000,
            "currency": "JPY",
            "isIncludingTax": false,
            "taxRoundingMethod": "floor",
            "contractTerms": "…",
            "subcontractingPolicy": "not_set",
            "startDate": "2026-11-30",
            "endDate": "2026-11-30"
          }
        },
        "buyerMessage": "内容をご確認ください",
        "expiresAt": "2026-11-01T09:00:00.000Z"
      },
      "effects": {
        "presentation": "provider",
        "delivery": "none",
        "acceptsAgreement": false,
        "activatesPartnerOrder": false,
        "createsPaymentRequest": false
      }
    }
  }
}
POST/v1/agreements/{id}/present

本人が確認した合意内容を提示用に確定する

連携先の本人確認記録を受け取り、確認した版をSENTへ進めます。delivery:none。Tooonからメール・公開リンクは作りません。連携先が相手に内容を表示します。提示の準備が整った記録であり、到達・閲覧・相手の同意は意味しません。同じ確認記録の再送は同じ確定結果を返します。相手の同意・発注有効化・支払いは行いません。

パスの値

  • idstring必須

    200文字まで

送る項目JSON · 5項目

  • confirmationIdstring必須

    200文字まで

  • reviewHashstring必須
  • confirmedBystring必須

    200文字まで

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

    200文字まで

返る項目data の中身 · 200

  • agreementIdstring
  • confirmationIdstring
  • reviewHashstring
  • presentedAtstring (date-time)
  • delivery"none"

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

  • 400invalid_request

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

  • 403insufficient_scope

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

  • 404not_found

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

POST/v1/…/{id}/present
curl -X POST https://tooon.app/api/v1/agreements/clx8k2m0a0001/present \
  -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": {
    "agreementId": "clx8k2m0a0001",
    "confirmationId": "clx8k2m0a0001",
    "reviewHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "presentedAt": "2026-11-01T09:00:00.000Z",
    "delivery": "none"
  }
}
POST/v1/agreements/{id}/cancel-preview

取引合意の取消前に対象と効果を確認する

15分有効な確認IDと、対象の保存内容・現在状態・変更後状態・理由を返します。連携先は認証した依頼元本人に全内容を表示して確認を得てください。同意済み契約の解除には使えません。

パスの値

  • idstring必須

    200文字まで

送る項目JSON · 2項目

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

    2,000文字まで

返る項目data の中身 · 200

  • confirmationIdstring
  • expectedActorIdstring
  • reviewHashstring
  • expiresAtstring (date-time)
  • reviewobject
    中の項目 4
    • actionenum
      cancelrevise
    • agreementobject
      中の項目 7
      • idstring
      • partnerIdstring
      • partnerOrderIdstring
      • statusenum
        draftsentviewedaccepteddeclinedrevisedcanceled
      • termsobject
        中の項目 3
        • buyerobject
          中の項目 1
          • namestring
        • partnerobject
          中の項目 2
          • namestring
          • companyNamestring | null
        • partnerOrderobject
          中の項目 11
          • titlestring
          • rolestring | null
          • scopestring | null
          • amountinteger
          • currencystring
          • isIncludingTaxboolean
          • taxRoundingMethodenum
            floorceilround
          • contractTermsstring | null
          • subcontractingPolicyenum
            not_setnot_allowedrequires_approvalallowed_without_disclosureallowed_with_vendor_disclosureallowed_with_budget_disclosure
          • startDatestring | null
          • endDatestring | null
      • buyerMessagestring | null
      • expiresAtstring | null
    • commentstring | null
    • effectsobject
      中の項目 7
      • statusenum
        canceledrevised
      • delivery"none"
      • invalidatesPublicLinktrue
      • acceptsAgreementfalse
      • changesPartnerOrderfalse
      • createsPaymentRequestfalse
      • nextStepenum
        nonecreate_draft

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

  • 400invalid_request

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

  • 403insufficient_scope

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

  • 404not_found

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

POST/v1/…/{id}/cancel-preview
curl -X POST https://tooon.app/api/v1/agreements/clx8k2m0a0001/cancel-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": "cancel",
      "agreement": {
        "id": "clx8k2m0a0001",
        "partnerId": "clx8k2m0a0001",
        "partnerOrderId": "clx8k2m0a0001",
        "status": "draft",
        "terms": {
          "buyer": {
            "name": "山田 太郎"
          },
          "partner": {
            "name": "山田 太郎",
            "companyName": "山田デザイン事務所"
          },
          "partnerOrder": {
            "title": "Webサイト制作の業務委託",
            "role": "…",
            "scope": "…",
            "amount": 100000,
            "currency": "JPY",
            "isIncludingTax": false,
            "taxRoundingMethod": "floor",
            "contractTerms": "…",
            "subcontractingPolicy": "not_set",
            "startDate": "2026-11-30",
            "endDate": "2026-11-30"
          }
        },
        "buyerMessage": "内容をご確認ください",
        "expiresAt": "2026-11-01T09:00:00.000Z"
      },
      "comment": "…",
      "effects": {
        "status": "canceled",
        "delivery": "none",
        "invalidatesPublicLink": true,
        "acceptsAgreement": false,
        "changesPartnerOrder": false,
        "createsPaymentRequest": false,
        "nextStep": "none"
      }
    }
  }
}
POST/v1/agreements/{id}/cancel

本人が確認した取引合意を取消する

未同意の合意をCANCELEDにし、旧ゲストURLを無効にします。依頼元本人の確認記録が必要です。発注条件・支払いは変えず、相手へ送信しません。同じ確認の再送は一回の結果です。

パスの値

  • idstring必須

    200文字まで

送る項目JSON · 5項目

  • confirmationIdstring必須

    200文字まで

  • reviewHashstring必須
  • confirmedBystring必須

    200文字まで

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

    200文字まで

返る項目data の中身 · 200

  • agreementIdstring
  • confirmationIdstring
  • actionenum
    cancelrevise
  • statusenum
    canceledrevised
  • changedAtstring (date-time)
  • reviewHashstring
  • delivery"none"

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

  • 400invalid_request

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

  • 403insufficient_scope

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

  • 404not_found

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

POST/v1/…/{id}/cancel
curl -X POST https://tooon.app/api/v1/agreements/clx8k2m0a0001/cancel \
  -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": {
    "agreementId": "clx8k2m0a0001",
    "confirmationId": "clx8k2m0a0001",
    "action": "cancel",
    "status": "canceled",
    "changedAt": "2026-11-01T09:00:00.000Z",
    "reviewHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "delivery": "none"
  }
}
POST/v1/agreements/{id}/revise-preview

取引合意の修正戻し前に対象と効果を確認する

15分有効な確認IDと、対象の保存内容・現在状態・変更後状態・理由を返します。連携先は認証した依頼元本人に全内容を表示して確認を得てください。同意済み契約の解除には使えません。

パスの値

  • idstring必須

    200文字まで

送る項目JSON · 2項目

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

    2,000文字まで

返る項目data の中身 · 200

  • confirmationIdstring
  • expectedActorIdstring
  • reviewHashstring
  • expiresAtstring (date-time)
  • reviewobject
    中の項目 4
    • actionenum
      cancelrevise
    • agreementobject
      中の項目 7
      • idstring
      • partnerIdstring
      • partnerOrderIdstring
      • statusenum
        draftsentviewedaccepteddeclinedrevisedcanceled
      • termsobject
        中の項目 3
        • buyerobject
          中の項目 1
          • namestring
        • partnerobject
          中の項目 2
          • namestring
          • companyNamestring | null
        • partnerOrderobject
          中の項目 11
          • titlestring
          • rolestring | null
          • scopestring | null
          • amountinteger
          • currencystring
          • isIncludingTaxboolean
          • taxRoundingMethodenum
            floorceilround
          • contractTermsstring | null
          • subcontractingPolicyenum
            not_setnot_allowedrequires_approvalallowed_without_disclosureallowed_with_vendor_disclosureallowed_with_budget_disclosure
          • startDatestring | null
          • endDatestring | null
      • buyerMessagestring | null
      • expiresAtstring | null
    • commentstring | null
    • effectsobject
      中の項目 7
      • statusenum
        canceledrevised
      • delivery"none"
      • invalidatesPublicLinktrue
      • acceptsAgreementfalse
      • changesPartnerOrderfalse
      • createsPaymentRequestfalse
      • nextStepenum
        nonecreate_draft

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

  • 400invalid_request

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

  • 403insufficient_scope

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

  • 404not_found

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

POST/v1/…/{id}/revise-preview
curl -X POST https://tooon.app/api/v1/agreements/clx8k2m0a0001/revise-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": "cancel",
      "agreement": {
        "id": "clx8k2m0a0001",
        "partnerId": "clx8k2m0a0001",
        "partnerOrderId": "clx8k2m0a0001",
        "status": "draft",
        "terms": {
          "buyer": {
            "name": "山田 太郎"
          },
          "partner": {
            "name": "山田 太郎",
            "companyName": "山田デザイン事務所"
          },
          "partnerOrder": {
            "title": "Webサイト制作の業務委託",
            "role": "…",
            "scope": "…",
            "amount": 100000,
            "currency": "JPY",
            "isIncludingTax": false,
            "taxRoundingMethod": "floor",
            "contractTerms": "…",
            "subcontractingPolicy": "not_set",
            "startDate": "2026-11-30",
            "endDate": "2026-11-30"
          }
        },
        "buyerMessage": "内容をご確認ください",
        "expiresAt": "2026-11-01T09:00:00.000Z"
      },
      "comment": "…",
      "effects": {
        "status": "canceled",
        "delivery": "none",
        "invalidatesPublicLink": true,
        "acceptsAgreement": false,
        "changesPartnerOrder": false,
        "createsPaymentRequest": false,
        "nextStep": "none"
      }
    }
  }
}
POST/v1/agreements/{id}/revise

本人が確認した取引合意を修正戻しする

未同意の合意をREVISEDにし、旧ゲストURLを無効にします。修正後の条件は同じpartnerOrderIdで新しい下書きを作り、再確認して提示してください。発注条件・支払いは変えず、相手へ送信しません。

パスの値

  • idstring必須

    200文字まで

送る項目JSON · 5項目

  • confirmationIdstring必須

    200文字まで

  • reviewHashstring必須
  • confirmedBystring必須

    200文字まで

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

    200文字まで

返る項目data の中身 · 200

  • agreementIdstring
  • confirmationIdstring
  • actionenum
    cancelrevise
  • statusenum
    canceledrevised
  • changedAtstring (date-time)
  • reviewHashstring
  • delivery"none"

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

  • 400invalid_request

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

  • 403insufficient_scope

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

  • 404not_found

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

POST/v1/…/{id}/revise
curl -X POST https://tooon.app/api/v1/agreements/clx8k2m0a0001/revise \
  -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": {
    "agreementId": "clx8k2m0a0001",
    "confirmationId": "clx8k2m0a0001",
    "action": "cancel",
    "status": "canceled",
    "changedAt": "2026-11-01T09:00:00.000Z",
    "reviewHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "delivery": "none"
  }
}
POST/v1/agreements/{id}/revisions

同意済みの記録を残して改訂下書きを作る

元の合意はACCEPTEDのまま保持し、現在の発注条件とこの事業の名義で新しいDRAFTを作成します。元のbuyerMessageを引き継ぎ、期限は未設定にします。同じ元合意の改訂下書きがあればそのIDを返します。既に別の提示/改訂が進んでいる場合は409。相手への提示・再同意・発注有効化・支払い・メールは行いません。下書きを編集し、連携先で本人確認してから提示してください。

パスの値

  • idstring必須

    100文字まで

送る項目JSON · 1項目

  • expectedUpdatedAtstring (date-time)必須

返る項目data の中身 · 200

  • idstring
  • revisionOfIdstring | null
  • externalRefstring | null
  • partnerIdstring
  • partnerOrderIdstring
  • statusenum
    draftsentviewedaccepteddeclinedrevisedcanceled
  • expiresAtstring | null
  • sentAtstring | null
  • viewedAtstring | null
  • acceptedAtstring | null
  • declinedAtstring | null
  • canceledAtstring | null
  • createdAtstring (date-time)
  • updatedAtstring (date-time)
  • partnerOrderUpdatedAtstring (date-time)
  • buyerMessagestring | null
  • initiatorSideenum
    buyerseller
  • receiverSideenum
    buyerseller
  • termsobject
    中の項目 3
    • buyerobject
      中の項目 1
      • namestring
    • partnerobject
      中の項目 2
      • namestring
      • companyNamestring | null
    • partnerOrderobject
      中の項目 11
      • titlestring
      • rolestring | null
      • scopestring | null
      • amountinteger
      • currencystring
      • isIncludingTaxboolean
      • taxRoundingMethodenum
        floorceilround
      • contractTermsstring | null
      • subcontractingPolicyenum
        not_setnot_allowedrequires_approvalallowed_without_disclosureallowed_with_vendor_disclosureallowed_with_budget_disclosure
      • startDatestring | null
      • endDatestring | null

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

  • 400invalid_request

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

  • 403insufficient_scope

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

  • 404not_found

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

POST/v1/…/{id}/revisions
curl -X POST https://tooon.app/api/v1/agreements/clx8k2m0a0001/revisions \
  -H "Authorization: Bearer $TOOON_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "expectedUpdatedAt": "2026-11-01T09:00:00.000Z"
}'
レスポンス
{
  "data": {
    "id": "clx8k2m0a0001",
    "revisionOfId": "clx8k2m0a0001",
    "externalRef": "staff-0001",
    "partnerId": "clx8k2m0a0001",
    "partnerOrderId": "clx8k2m0a0001",
    "status": "draft",
    "expiresAt": "2026-11-01T09:00:00.000Z",
    "sentAt": "2026-11-01T09:00:00.000Z",
    "viewedAt": "2026-11-01T09:00:00.000Z",
    "acceptedAt": "2026-11-01T09:00:00.000Z",
    "declinedAt": "2026-11-01T09:00:00.000Z",
    "canceledAt": "2026-11-01T09:00:00.000Z",
    "createdAt": "2026-11-01T09:00:00.000Z",
    "updatedAt": "2026-11-01T09:00:00.000Z",
    "partnerOrderUpdatedAt": "2026-11-01T09:00:00.000Z",
    "buyerMessage": "内容をご確認ください",
    "initiatorSide": "buyer",
    "receiverSide": "buyer",
    "terms": {
      "buyer": {
        "name": "山田 太郎"
      },
      "partner": {
        "name": "山田 太郎",
        "companyName": "山田デザイン事務所"
      },
      "partnerOrder": {
        "title": "Webサイト制作の業務委託",
        "role": "…",
        "scope": "…",
        "amount": 100000,
        "currency": "JPY",
        "isIncludingTax": false,
        "taxRoundingMethod": "floor",
        "contractTerms": "…",
        "subcontractingPolicy": "not_set",
        "startDate": "2026-11-30",
        "endDate": "2026-11-30"
      }
    }
  }
}
PATCH/v1/agreements/{id}/terms

取引合意の下書きの条件を編集する

最新DRAFTの条件を全項目で置き換えます。GETのupdatedAtをexpectedUpdatedAt、partnerOrderUpdatedAtをexpectedPartnerOrderUpdatedAtに指定してください。通貨は既存の発注と同じ値を指定します。発注とこの下書きの条件を一緒に更新し、承諾済みの原本や過去の版は変えません。既に請求依頼がある発注、完了・中止した発注、予算や多段受発注と結び付いた発注は編集できません。変更前の確認記録は古い版になるため、変更後の内容を連携先で再確認してから提示します。提示・相手の承諾・送信・支払いは行いません。

パスの値

  • idstring必須

    100文字まで

送る項目JSON · 14項目

  • expectedUpdatedAtstring (date-time)必須
  • expectedPartnerOrderUpdatedAtstring (date-time)必須
  • termsobject必須
    中の項目 11
    • titlestring必須

      200文字まで

    • rolestring | null必須

      1,000文字まで

    • scopestring | null必須

      10,000文字まで

    • amountinteger必須

      1〜2,147,483,647

    • currencystring必須
    • isIncludingTaxboolean必須
    • taxRoundingMethodenum必須
      floorceilround
    • contractTermsstring | null必須

      10,000文字まで

    • subcontractingPolicyenum必須
      not_setnot_allowedrequires_approvalallowed_without_disclosureallowed_with_vendor_disclosureallowed_with_budget_disclosure
    • startDatestring (date-time) | null必須
    • endDatestring (date-time) | null必須

返る項目data の中身 · 200

  • idstring
  • revisionOfIdstring | null
  • externalRefstring | null
  • partnerIdstring
  • partnerOrderIdstring
  • statusenum
    draftsentviewedaccepteddeclinedrevisedcanceled
  • expiresAtstring | null
  • sentAtstring | null
  • viewedAtstring | null
  • acceptedAtstring | null
  • declinedAtstring | null
  • canceledAtstring | null
  • createdAtstring (date-time)
  • updatedAtstring (date-time)
  • partnerOrderUpdatedAtstring (date-time)
  • buyerMessagestring | null
  • initiatorSideenum
    buyerseller
  • receiverSideenum
    buyerseller
  • termsobject
    中の項目 3
    • buyerobject
      中の項目 1
      • namestring
    • partnerobject
      中の項目 2
      • namestring
      • companyNamestring | null
    • partnerOrderobject
      中の項目 11
      • titlestring
      • rolestring | null
      • scopestring | null
      • amountinteger
      • currencystring
      • isIncludingTaxboolean
      • taxRoundingMethodenum
        floorceilround
      • contractTermsstring | null
      • subcontractingPolicyenum
        not_setnot_allowedrequires_approvalallowed_without_disclosureallowed_with_vendor_disclosureallowed_with_budget_disclosure
      • startDatestring | null
      • endDatestring | null

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

  • 400invalid_request

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

  • 403insufficient_scope

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

  • 404not_found

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

PATCH/v1/…/{id}/terms
curl -X PATCH https://tooon.app/api/v1/agreements/clx8k2m0a0001/terms \
  -H "Authorization: Bearer $TOOON_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "expectedUpdatedAt": "2026-11-01T09:00:00.000Z",
  "expectedPartnerOrderUpdatedAt": "2026-11-01T09:00:00.000Z",
  "terms": {
    "title": "Webサイト制作の業務委託",
    "role": "…",
    "scope": "…",
    "amount": 100000,
    "currency": "JPY",
    "isIncludingTax": false,
    "taxRoundingMethod": "floor",
    "contractTerms": "…",
    "subcontractingPolicy": "not_set",
    "startDate": "2026-11-01T09:00:00.000Z",
    "endDate": "2026-11-01T09:00:00.000Z"
  }
}'
レスポンス
{
  "data": {
    "id": "clx8k2m0a0001",
    "revisionOfId": "clx8k2m0a0001",
    "externalRef": "staff-0001",
    "partnerId": "clx8k2m0a0001",
    "partnerOrderId": "clx8k2m0a0001",
    "status": "draft",
    "expiresAt": "2026-11-01T09:00:00.000Z",
    "sentAt": "2026-11-01T09:00:00.000Z",
    "viewedAt": "2026-11-01T09:00:00.000Z",
    "acceptedAt": "2026-11-01T09:00:00.000Z",
    "declinedAt": "2026-11-01T09:00:00.000Z",
    "canceledAt": "2026-11-01T09:00:00.000Z",
    "createdAt": "2026-11-01T09:00:00.000Z",
    "updatedAt": "2026-11-01T09:00:00.000Z",
    "partnerOrderUpdatedAt": "2026-11-01T09:00:00.000Z",
    "buyerMessage": "内容をご確認ください",
    "initiatorSide": "buyer",
    "receiverSide": "buyer",
    "terms": {
      "buyer": {
        "name": "山田 太郎"
      },
      "partner": {
        "name": "山田 太郎",
        "companyName": "山田デザイン事務所"
      },
      "partnerOrder": {
        "title": "Webサイト制作の業務委託",
        "role": "…",
        "scope": "…",
        "amount": 100000,
        "currency": "JPY",
        "isIncludingTax": false,
        "taxRoundingMethod": "floor",
        "contractTerms": "…",
        "subcontractingPolicy": "not_set",
        "startDate": "2026-11-30",
        "endDate": "2026-11-30"
      }
    }
  }
}