> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.jp/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# CRM API | 見積もり

export const ScopesList = ({scopes = [], description = "この API には、次のいずれかのスコープが必要です。"}) => {
  if (!scopes || scopes.length === 0) {
    return null;
  }
  const sortedScopes = scopes.sort((a, b) => a.localeCompare(b));
  return <div>
      <div className="text-sm mb-2">{description}</div>
      <div>
        {sortedScopes.map((scope, index) => <div key={index}>
            <code>
              <span className="text-xs">{scope}</span>
            </code>
          </div>)}
      </div>
    </div>;
};

<RelatedApiLink />

見積もりAPIを使用して、見込み客に価格情報を共有するための見積書を作成、管理、および取得します。設定が完了すると、指定されたURLまたはPDFのいずれかで、購入者に見積もりを共有できます。また、[HubSpotで見積もりを管理](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes-legacy#manage-quotes)して、詳細の追加や関連付けの更新などを行うこともできます。

[HubSpot決済機能](https://knowledge.hubspot.com/ja/payment-processing/set-up-payments)または[Stripe決済処理](https://knowledge.hubspot.com/ja/payment-processing/connect-your-stripe-account-as-a-payment-processor-in-hubspot)のいずれかを設定している場合は、このAPIを介して見積もりを支払い可能に設定できます。詳しくは[支払い可能な見積もり](https://developers.hubspot.jp/docs/api-reference/crm-quotes-v3/guide#enable-payments)をご確認ください。

<Frame>
  <img src="https://www.hubspot.jp/hubfs/Knowledge_Base_2023/example-quote-api.png" alt="見積もりAPIの使用例" />
</Frame>

**使用例**: 貴社の年次SEO監査サービスパッケージの購入に関心がある顧客向けの契約提案書を作成する必要があるとします。

以下では、APIを使用して見積もりを作成し、さまざまなプロパティー、関連付け、ステータスなどを構成する方法について説明します。

<Accordion title="スコープ要件">
  <ScopesList
    scopes={[
  'crm.objects.quotes.read',
  'crm.objects.quotes.write'
]}
  />
</Accordion>

## 概要

見積もりの作成プロセスは、次の手順に分けることができます。

1. **見積もりの作成**: 名前や有効期限など、いくつかの詳細を含む見積もりを作成します。また、[電子署名](https://developers.hubspot.jp/docs/api-reference/crm-quotes-v3/guide#enable-e-signatures)と[決済](https://developers.hubspot.jp/docs/api-reference/crm-quotes-v3/guide#enable-payments)[](https://knowledge.hubspot.com/ja/quotes/use-e-signatures-with-quotes)が有効になるように見積もりを設定することもできます。
2. **関連付けの設定**: 見積もりと他のタイプのCRMオブジェクトに関連付けます。例えば、商品項目、見積もりテンプレート、取引などを関連付けます。次のステップで、見積もりはこれらの関連付けられたレコードの一部とアカウントの設定から、プロパティー値を継承します。
3. **見積もりステータスの設定**: 見積もりのステータスを設定し、購入者と共有できる状態かどうかを示します。見積もりのステータスを「下書き」または「公開中」などに設定すると、関連付けられたCRMレコードとアカウント設定から[特定のプロパティーが継承](#properties-set-by-quote-state)されます。
4. **見積もりの共有**: 見積もりが公開されると、購入者と共有できるようになります。

## 見積もりの作成

見積もりを作成するには、まず`/crm/v3/objects/quotes`に`POST`リクエストを送信して、基本的な情報を設定します。その後、見積もりを他のオブジェクト（見積もりテンプレート、商品項目、取引など）に関連付けるために、別の呼び出しを行います。

<Info>
  ご希望のワークフローに応じて、[1つのPOSTリクエストで関連付けのある見積もりを作成](#create-a-quote-with-associations-single-request)することもできます。
</Info>

POSTリクエスト本文には、次の必須プロパティーを含めて、基本的な情報を設定します。

```json theme={null}
{
  "properties": {
    "hs_title": "CustomerName - annual SEO audit",
    "hs_expiration_date": "2023-12-10"
  }
}
```

| パラメーター               | タイプ | 説明         |
| -------------------- | --- | ---------- |
| `hs_title`           | 文字列 | 見積もりの名前。   |
| `hs_expiration_date` | 文字列 | 見積もりの有効期限。 |

上記は見積もりを作成するために最小限必要なプロパティーですが、見積もりを公開するには[他のプロパティー](https://developers.hubspot.jp/docs/api-reference/crm-quotes-v3/guide#adding-associations)も必要です。利用可能な全ての見積もりプロパティーを確認するには、`crm/v3/properties/quotes`に`GET`リクエストを送信します。詳しくは[プロパティーAPI](/api-reference/crm-properties-v3/guide)をご参照ください。

レスポンスには`id`が含まれ、これを使用して見積もりの設定を続けることができます。`PATCH`リクエストを`/crm/v3/objects/quotes/{quoteId}`に送信することで、見積もりプロパティーをいつでも更新できます。

### 見積もり担当者

`hubspot_owner_id`プロパティーは計算プロパティーであるため、手動で設定することはできません。値があれば、全ての値がオーバーライドされます。見積もりを使用する場合、プロパティーは次のように機能します。

* 取引が[見積もり](#adding-associations)に関連付けられている場合、`hubspot_owner_id`プロパティーには`hs_associated_deal_owner_id`プロパティーが反映されます（`hs_associated_deal_owner_id`は計算プロパティーです）。
* 取引が見積もりに関連付けられていない場合、`hubspot_owner_id`プロパティーには`hs_quote_owner_id`プロパティーが反映されます。

### 電子署名を有効にする

見積もりで電子署名を有効にするには、`true`の値を持つ`hs_esign_enabled`ブール値プロパティーをリクエスト本文に含めます。APIを使用して副署名者を追加することはできないため、見積もりを公開する前にHubSpotで副署名者を追加する必要があります。また、[毎月の電子署名数の制限を超えた](https://knowledge.hubspot.com/ja/quotes/use-e-signatures-with-quotes#monitor-e-signature-usage)場合は、電子署名を有効にして見積もりを公開することはできません。

```json theme={null}
{
  "properties": {
    "hs_title": "CustomerName - annual SEO audit",
    "hs_expiration_date": "2023-12-10",
    "hs_esign_enabled": "true"
  }
}
```

後から、見積もりを署名者に関連付ける必要があります。見積もりに署名するコンタクトはHubSpotにコンタクトとして存在しますが、コンタクトとは別の関連付けタイプとして保存されます。詳しくは[見積もり署名者を関連付ける](#associating-quote-signers)方法をご確認ください。

### 支払いを有効にする

見積もりで支払いを有効にするには、リクエスト本文に`hs_payment_enabled`ブール値プロパティーを含めて、その値を`true`に設定します。また、決済代行事業者と受け入れ可能な支払い方法によっては、`hs_payment_type`と`hs_allowed_payment_methods`も設定する必要があります。

<Warning>
  ### 注：

  この機能を使用する前に、HubSpotアカウントで[HubSpot決済機能](https://knowledge.hubspot.com/ja/payment-processing/set-up-payments)または[Stripe決済処理](https://knowledge.hubspot.com/ja/payment-processing/connect-your-stripe-account-as-a-payment-processor-in-hubspot)のいずれかが設定されている必要があります。
</Warning>

| パラメーター                        | タイプ  | 説明                                                                                      |
| ----------------------------- | ---- | --------------------------------------------------------------------------------------- |
| `hs_payment_enabled`          | ブール値 | `true`に設定すると、見積もりでHubSpot決済機能またはStripe決済処理のいずれかを使用して支払いを回収できるようになります。デフォルトの値は`false`です。 |
| `hs_payment_type`             | 列挙   | 使用する決済代行事業者を決定します。値は`HUBSPOT`または`BYO_STRIPE`のいずれかです。                                    |
| `hs_allowed_payment_methods`  | 列挙   | 使用する支払い方法（クレジットカードなど）。                                                                  |
| `hs_collect_billing_address`  | ブール値 | `true`に設定すると、購入者は注文の確認時に請求先住所を入力できます。                                                   |
| `hs_collect_shipping_address` | ブール値 | `true`に設定すると、購入者は注文の確認時に発送先住所を入力できます。                                                   |

例えば見積もりを作成し、クレジットカードおよびデビットカードまたはACHによるHubSpot決済機能を有効にする場合、リクエストは次のようになります。

```json theme={null}
{
  "properties": {
    "hs_title": "CustomerName - annual SEO audit",
    "hs_expiration_date": "2023-12-10",
    "hs_payment_enabled": "true",
    "hs_payment_type": "HUBSPOT",
    "hs_allowed_payment_methods": "CREDIT_OR_DEBIT_CARD;ACH"
  }
}
```

支払いを追跡する目的で、HubSpotは`hs_payment_status`プロパティーと`hs_payment_date`プロパティーを自動的に更新します。

* 支払いが有効な状態で見積もりが公開されると、HubSpotは自動的に`hs_payment_status`プロパティーを`PENDING`に設定します。
* ACHを使用している場合、支払いが処理されると、HubSpotは自動的に`hs_payment_status`プロパティーを`PROCESSING`に設定します。
* 支払いが確認されると、HubSpotは自動的に`hs_payment_status`プロパティーを`PAID`に設定します。
* 見積もりが支払われると、HubSpotは自動的に`hs_payment_date`を支払い確認日時に設定します。
* 支払いが確認されると、支払いは見積もりに自動的に関連付けられます。支払いの詳細を取得する場合は、[決済API](/api-reference/crm-commerce-payments-v3/guide)をご確認ください。

## 関連付けを追加する

完全な見積もりを作成するには、[関連付けAPI](/api-reference/crm-associations-v4/guide)を使用して、商品項目など他のCRMレコードと関連付ける必要があります。次の表は、完全な見積もりに必要なCRMレコードの関連付けと、オプションの関連付けを示しています。IDの取得と、IDを使用して必要な関連付けを作成する方法の詳細については、続きをお読みください。

| オブジェクトタイプ                                                                                                                                                                  | 必須  | 説明                                                                                                                                                                                         |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [商品項目](https://developers.hubspot.jp/docs/api-reference/crm-line-items-v3/guide)                                                                                           | はい  | 見積もりを通して販売されている商品またはサービス。[製品ライブラリー内の製品](https://developers.hubspot.jp/docs/api-reference/crm-products-v3/guide)から商品項目を作成したり、カスタムのスタンドアロン商品項目を作成したりすることができます。                               |
| [見積もりテンプレート](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes-legacy)                                                                                          | はい  | 見積もりを表示するテンプレート。見積もりのデフォルト設定（言語など）が含まれます。見積もりごとに1つのテンプレートを関連付けることができます。                                                                                                                    |
| [取引](/api-reference/crm-deals-v3/guide)                                                                                                                                    | はい  | 収益と営業ライフサイクルを追跡するために使用される取引レコード。見積もりには、関連付けられた取引からの値（担当者、通貨など）が継承されます。見積もりごとに1つの取引を関連付けることができます。                                                                                           |
| [コンタクト](/api-reference/crm-contacts-v3/guide)                                                                                                                              | いいえ | 見積もりの対象となる特定の顧客。                                                                                                                                                                           |
| [会社](/api-reference/crm-companies-v3/guide)                                                                                                                                | いいえ | 見積もりの対象となる特定の会社。見積もりごとに1つの会社を関連付けることができます。                                                                                                                                                 |
| [割引](/api-reference/crm-discounts-v3/guide)、[手数料](/api-reference/crm-fees-v3/guide)、[税金](https://developers.hubspot.com/docs/api-reference/legacy/crm/objects/taxes/guide) | いいえ | 決済時に適用される任意の割引、手数料、税金。合計見積もり金額を算定する際、HubSpotはまず割引を適用し、次に手数料、そして税金を適用します。`hs_sort_order`フィールドを使用すると、同じタイプのオブジェクトを並べ替えることができます。`hs_type`の値を`FIXED`または`PERCENT`に設定することで、固定値またはパーセンテージを指定できます。 |

### 関連付けのIDの取得

各関連付けを作成するには、まず関連付ける各オブジェクトのIDを取得する必要があります。各IDを取得するには、関連するオブジェクトエンドポイントに`GET`リクエストを送信します。各CRMオブジェクトで同様の処理を行います。また、各リクエストを送信するときには、必要に応じて`properties`クエリーパラメーターを含めることで、特定のプロパティーを返すことができます。以下は、各タイプのオブジェクトに対する`GET`リクエストの例です。

<CodeGroup>
  ```text hubl.txt theme={null}
  GET request for line items
  /crm/v3/objects/line_items?properties=name

  GET request for quote templates
  /crm/v3/objects/quote_template?properties=hs_name

  GET request for deals
  /crm/v3/objects/deals?properties=dealname

  GET request for contacts
  /crm/v3/objects/contacts?properties=email

  GET request for companies
  /crm/v3/objects/companies?properties=name

  GET request for discounts
  crm/v3/objects/discounts?properties=hs_type,hs_value

  GET request for fees
  crm/v3/objects/fees?properties=hs_type,hs_value

  GET request for taxes
  crm/v3/objects/taxes?properties=hs_type,hs_value
  ```

  ```text シェルスクリプト.txt theme={null}
  #GET request for line items
  curl --request GET \
  --url 'https://api.hubapi.com/crm/v3/properties/line_items?archived=false' \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

  #GET request for quote templates
  curl --request GET \
  --url 'https://api.hubapi.com/crm/v3/properties/quote_templates?archived=false' \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

  #GET request for deals
  curl --request GET \
  --url 'https://api.hubapi.com/crm/v3/properties/deals?archived=false' \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

  #GET request for contacts
  curl --request GET \
  --url 'https://api.hubapi.com/crm/v3/properties/contacts?archived=false' \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

  #GET request for companies
  curl --request GET \
  --url 'https://api.hubapi.com/crm/v3/properties/companies?archived=false' \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

  #GET request for discounts
  curl --request GET \
  --url 'https://api.hubapi.com/crm/v3/properties/discounts?archived=false' \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

  #GET request for fees
  curl --request GET \
  --url 'https://api.hubapi.com/crm/v3/properties/fees?archived=false' \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

  #GET request for taxes
  curl --request GET \
  --url 'https://api.hubapi.com/crm/v3/properties/taxes?archived=false' \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
  ```
</CodeGroup>

呼び出しが成功するたびに、取得された各オブジェクトタイプの詳細を含む`200`レスポンスが返されます。次のステップでは、`id`フィールドの値を使用して関連付けを設定します。

```json theme={null}
{
  "results": [
    {
      "id": "235425923863",
      "properties": {
        "hs_createdate": "2023-06-12T16:27:32.794Z",
        "hs_lastmodifieddate": "2023-06-12T16:27:32.794Z",
        "hs_name": "Default Basic",
        "hs_object_id": "235425923863"
      },
      "createdAt": "2023-06-12T16:27:32.794Z",
      "updatedAt": "2023-06-12T16:27:32.794Z",
      "archived": false
    },
    {
      "id": "235425923864",
      "properties": {
        "hs_createdate": "2023-06-12T16:27:32.794Z",
        "hs_lastmodifieddate": "2023-06-12T16:27:32.794Z",
        "hs_name": "Default Modern",
        "hs_object_id": "235425923864"
      },
      "createdAt": "2023-06-12T16:27:32.794Z",
      "updatedAt": "2023-06-12T16:27:32.794Z",
      "archived": false
    },
    {
      "id": "235425923865",
      "properties": {
        "hs_createdate": "2023-06-12T16:27:32.794Z",
        "hs_lastmodifieddate": "2023-06-12T16:27:32.794Z",
        "hs_name": "Default Original",
        "hs_object_id": "235425923865"
      },
      "createdAt": "2023-06-12T16:27:32.794Z",
      "updatedAt": "2023-06-12T16:27:32.794Z",
      "archived": false
    }
  ]
}
```

### 関連付けの作成

IDが取得されると、[関連付けAPI](/api-reference/crm-associations-v4/guide)を呼び出して関連付けを作成できるようになります。

見積もりに関連付けるオブジェクトのタイプごとに、以下のURL構造を使って`PUT`リクエストを送信することで、個別の呼び出しを行う必要があります。

`/crm/v4/objects/quotes/{fromObjectId}/associations/default/{toObjectType}/{toObjectId}`

| パラメーター         | 説明                                                               |
| -------------- | ---------------------------------------------------------------- |
| `fromObjectId` | 見積もりのID。                                                         |
| `toObjectType` | 関連付けているオブジェクトのタイプ。例えば、`line_items`、`deals`、`quote_template`などです。 |
| `toObjectId`   | 見積もりに関連付けているオブジェクトのID。                                           |

以下は、各タイプのオブジェクトに対する`PUT`リクエストの例です。

<CodeGroup>
  ```text hubl.txt theme={null}
  PUT request to associate a line item
  /crm/v4/objects/quotes/{quoteId}/associations/default/line_items/{lineItemId}

  PUT request to associate a quote template
  /crm/v4/objects/quotes/{quoteId}/associations/default/quote_template/{quoteTemplateId}

  PUT request to associate a deal
  /crm/v4/objects/quotes/{quoteId}/associations/default/deals/{dealId}

  PUT request to associate contacts
  /crm/v4/objects/quotes/{quoteId}/associations/default/contacts/{contactId}

  PUT request to associate companies
  /crm/v4/objects/quotes/{quoteId}/associations/default/companies/{companyId}

  PUT request to associate discounts
  /crm/v4/objects/quotes/{quoteId}/associations/default/discounts/{discountId}

  PUT request to associate fees
  /crm/v4/objects/quotes/{quoteId}/associations/default/fees/{feeId}

  PUT request to associate taxes
  /crm/v4/objects/quotes/{quoteId}/associations/default/taxes/{taxId}
  ```

  ```text シェルスクリプト.txt theme={null}
  #PUT request to associate line items
  curl --request PUT \
  --url https://api.hubapi.com/crm/v4/objects/quotes/{quoteId}/associations/default/line_items/{lineItemId} \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

  #PUT request to associate a quote template
  curl --request PUT \
  --url https://api.hubapi.com/crm/v4/objects/quotes/{quote_ID}/associations/default/quote_template/{quoteTemplateId} \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

  #PUT request to associate a deal
  curl --request PUT \
  --url https://api.hubapi.com/crm/v4/objects/quotes/{quoteId}/associations/default/deals/{dealId} \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

  #PUT request to associate contacts
  curl --request PUT \
  --url https://api.hubapi.com/crm/v4/objects/quotes/{quoteId}/associations/default/contacts/{contactId} \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

  #PUT request to associate a company
  curl --request PUT \
  --url https://api.hubapi.com/crm/v4/objects/quotes/{quoteId}/associations/default/companies/{companyId} \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

  #PUT request to associate discounts
  curl --request PUT \
  --url https://api.hubapi.com/crm/v4/objects/quotes/{quoteId}/associations/default/discounts/{discountId} \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

  #PUT request to associate fees
  curl --request PUT \
  --url https://api.hubapi.com/crm/v4/objects/quotes/{quoteId}/associations/default/fees/{feeId} \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'

  #PUT request to associate taxes
  curl --request PUT \
  --url https://api.hubapi.com/crm/v4/objects/quotes/{quoteId}/associations/default/line_items/{taxId} \
  --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
  ```
</CodeGroup>

例えば、見積もりのIDが`123456`である場合、見積もりを関連付けるリクエストは次のような内容になります。

* **商品項目（ID：`55555`、`66666`）**:
  * `/crm/v4/objects/quotes/123456/associations/default/line_items/55555`
  * `/crm/v4/objects/quotes/123456/associations/default/line_items/66666`
* **見積もりテンプレート（ID**: `987654`**）**: `/crm/v4/objects/quotes/123456/associations/default/quote_template/987654`
* **取引（ID：`345345`）**: `/crm/v4/objects/quotes/123456/associations/default/deals/345345`

関連付けが成功するたびに、その関連付けの詳細を含む`200`レスポンスが返されます。上記の呼び出しは、オブジェクトを両方向に関連付け、各方向に独自のIDがあります。例えば、見積もりを見積もりテンプレートに関連付けると、レスポンスには両方からの関連付けが記述されます。以下のレスポンスの例で、`286`は見積もりと見積もりテンプレートの関連付けタイプID、`285`は見積もりテンプレートと見積もりの関連付けタイプIDです。

```json theme={null}
{
  "status": "COMPLETE",
  "results": [
    {
      "from": {
        "id": "115045534742"
      },
      "to": {
        "id": "102848290"
      },
      "associationSpec": {
        "associationCategory": "HUBSPOT_DEFINED",
        "associationTypeId": 285
      }
    },
    {
      "from": {
        "id": "102848290"
      },
      "to": {
        "id": "115045534742"
      },
      "associationSpec": {
        "associationCategory": "HUBSPOT_DEFINED",
        "associationTypeId": 286
      }
    }
  ],
  "startedAt": "2023-10-12T16:48:40.624Z",
  "completedAt": "2023-10-12T16:48:40.712Z"
}
```

<Warning>
  ### 見積もりを見積もりテンプレートに関連付けるときには、次の点に注意してください。

  * 見積もりテンプレートに見積もりを関連付ける前に、見積もりテンプレートを[作成](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes-legacy)しておく必要があります。
  * 見積もりは1つの見積もりテンプレートにのみ関連付けることができます。
  * このAPIは、旧バージョンの見積もりや見積もり提案をサポートしていません。`CUSTOMIZABLE_QUOTE_TEMPLATE`テンプレートタイプのみ使用できます。
</Warning>

### 見積もり署名者を関連付ける

[見積もりで電子署名の使用を有効にする](#enable-e-signatures)場合は、特定の見積もりとコンタクト間の[関連付けラベル](/api-reference/crm-associations-v4/guide#associate-records-with-a-label)を使用して、見積もりと署名者であるコンタクトとの間に関連付けを作成する必要もあります。

上記のデフォルトの関連付けエンドポイントを使用するのではなく、次のURLに`PUT`リクエストを送信する必要があります。

`/crm/v4/objects/quote/{quoteId}/associations/contact/{contactId}`

リクエスト本文で、次のように`associationCategory`と`associationTypeId`を指定する必要があります。

```json theme={null}
[
  {
    "associationCategory": "HUBSPOT_DEFINED",
    "associationTypeId": 702
  }
]
```

## 関連付けのある見積もりを作成する（1つのリクエスト）

次のリクエスト本文では、見積もりテンプレート、取引、2つの商品項目、およびコンタクトに関連付けられた、新しい見積もりを作成します。

<Info>
  以下のリクエスト本文でアカウント内に見積もりを作成するには、CRMの既存データに合わせて`associations`フィールドのオブジェクトIDを更新する必要があります。さらに詳しいガイダンスについては、[関連付けのIDの取得](#retrieving-ids-for-associations)セクションを参照してください。
</Info>

`POST` `/crm/v3/objects/quote`

```json theme={null}
{
  "properties": {
    "hs_title": "CustomerName - annual SEO audit",
    "hs_expiration_date": "2023-09-30"
  },
  "associations": [
    {
      "to": {
        "id": 115045534742
      },
      "types": [
        {
          "associationCategory": "HUBSPOT_DEFINED",
          "associationTypeId": 286
        }
      ]
    },
    {
      "to": {
        "id": 14795354663
      },
      "types": [
        {
          "associationCategory": "HUBSPOT_DEFINED",
          "associationTypeId": 64
        }
      ]
    },
    {
      "to": {
        "id": 75895447
      },
      "types": [
        {
          "associationCategory": "HUBSPOT_DEFINED",
          "associationTypeId": 67
        }
      ]
    },
    {
      "to": {
        "id": 256143985
      },
      "types": [
        {
          "associationCategory": "HUBSPOT_DEFINED",
          "associationTypeId": 67
        }
      ]
    }
  ]
}
```

| パラメーター         | タイプ    | 説明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| -------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `properties`   | オブジェクト | 見積もりの詳細を定義するプロパティー値。`hs_title`と`hs_expiration_date`のプロパティーは必須です。<ul><li>`hs_title`：見積もりの名前。</li><li>`hs_expiration_date`：見積もりの有効期限。</li><li>`hs_status`：[見積もりのステータス](#update-quote-state)。作成時に指定しなかった場合、ユーザーはHubSpotで見積もりを編集できません。</li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `associations` | 配列     | 見積もりに関連付けられているその他のCRMレコードとオブジェクト。見積もりを公開可能にするには、取引と見積もりテンプレートが関連付けられている必要があります。見積もりに関連付けられた商品項目は、見積もりの取引に関連付けられた商品項目とは異なる必要があります（つまり、商品項目のコピーを作成する必要があります）。<br /><br />それぞれの関連付けを設定するには、以下のフィールドを持つ個別のオブジェクトを配列に含めます。<ul><li>`to`：見積もりに関連付けるレコードまたはオブジェクトのID。</li><li>`associationCategory`：関連付けタイプの[ラベルカテゴリー](/api-reference/crm-associations-v4/guide#associate-records-with-a-label)。`"HUBSPOT_DEFINED"`（デフォルトラベル）または`"USER_DEFINED"`（カスタムラベル）のいずれかを指定します。</li><li>`associationTypeId`：作成されている[関連付けタイプのID](/api-reference/crm-associations-v4/guide#association-type-id-values)。例えば以下の値があります。<ul><li>`286`：見積もりを見積もりテンプレートに関連付け</li><li>`64`：見積もりを取引に関連付け</li><li>`67`：見積もりを商品項目に関連付け</li></ul></li></ul> |

<Warning>
  ### 注：

  これらの商品項目は、関連付けられている場合でも（見積もりを取引に関連付ける場合など）、他のオブジェクトの商品項目とは異なる必要があります。詳細については、[商品項目APIのドキュメント](https://developers.hubspot.jp/docs/api-reference/crm-line-items-v3/guide)をご確認ください。
</Warning>

## 見積もりステータスの更新

見積もりのステータスは、初期設定段階から公開までの作成プロセスの中で、どの段階に進んでいるかを表すものです。見積もり承認がアカウントに対して有効になっている場合、見積もりのステータスは[見積もりの承認プロセス](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes)を反映することもできます。見積もりのステータスを設定すると、HubSpotでは[特定のプロパティーが自動的に入力](#properties-set-by-quote-state)されます。

見積もりのステータスを更新するには、`/crm/v3/objects/quote/{quoteId}`に`PATCH`リクエストを送信します。

見積もりのステータスは`hs_status`フィールドに基づきます。特定の見積もりのステータスで、ユーザーは見積もり承認ワークフローで見積もりを編集、公開、使用できます。以下の見積もりのステータスを利用できます。

* **ステータスなし**: `hs_status`フィールドに値が指定されていない場合、見積もりには最小限のステータスが適用されます。この場合、見積もりは見積もりツールのインデックスページに表示されますが、直接編集することはできません。このステータスの見積もりも、シーケンスツールなどの自動化やレポートツール内での分析に使用できます。
* `DRAFT`：HubSpotで見積もりを編集できます。このステータスは、見積もりが完全に設定されていない場合や、HubSpotでの見積もり設定プロセスを営業担当者によって完了できるようにしたい場合に役立ちます。
* `APPROVAL_NOT_NEEDED`：[承認](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes)を必要とせずに、誰でもアクセス可能なURL（`hs_quote_link`）で見積もりを公開します。
* `PENDING_APPROVAL`：見積もりが公開される前の[承認待ち](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes)状態であることを示します。
* `APPROVED`：見積もりが既に[承認](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes)され、誰でもアクセス可能なURL（`hs_quote_link`）に公開されました。
* `REJECTED`：見積もりが設定されたものの、まだ公開が[承認](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes)されておらず、編集してから承認用に再送信する必要があることを示します。

<Warning>
  ### 注：

  見積もりで[電子署名を有効にしている](#enabling-e-signatures)場合、[毎月の電子署名数の制限](https://knowledge.hubspot.com/ja/quotes/use-e-signatures-with-quotes#monitor-e-signature-usage)を超えると見積もりを公開できなくなります。
</Warning>

例えば次のリクエストは、誰でもアクセス可能なURLで見積もりを公開します。

```json theme={null}
{
  "properties": {
    "hs_status": "APPROVAL_NOT_NEEDED"
  }
}
```

<Warning>
  ### 注：

  デフォルトでは、[見積もりのステータスを更新](https://developers.hubspot.jp/docs/api-reference/crm-quotes-v3/guide#update-quote-state)した後には、HubSpotによって見積もりの`hs_template_type`プロパティーが`CUSTOMIZABLE_QUOTE_TEMPLATE`に設定されます。このテンプレートタイプはv3 APIでサポートされていますが、次のテンプレートタイプは従来のテンプレートであり、サポートが終了しています。

  * `QUOTE`
  * `PROPOSAL`
</Warning>

### 見積もりステータスで設定されたプロパティー

見積もりのステータスを更新すると、次のプロパティーが更新されます。

* `hs_quote_amount`：関連付けられている商品項目、税金、割引、手数料に基づいて計算されます。
* `hs_domain`：関連付けられている見積もりテンプレートから設定されます。
* `hs_slug`：指定されていない場合は、無作為に生成されます。
* `hs_quote_total_preference`：ご使用のアカウントの設定に基づいて設定されます。この設定が指定されていない場合には、デフォルト値としてtotal\_first\_paymentフィールドの値が使用されます。
* `hs_timezone`：デフォルト値としてHubSpotアカウントのタイムゾーンが使用されます。
* `hs_locale`：関連付けられている見積もりテンプレートから設定されます。
* `hs_quote_number`：指定されていない場合、現在の日付と時刻に基づいて設定されます。
* `hs_language`：関連付けられている見積もりテンプレートから設定されます。
* `hs_currency`：関連付けられている取引に基づいて設定されます。見積もりに取引を関連付けていない場合、HubSpotアカウントのデフォルトの通貨がデフォルト値として使用されます。

見積もりが「公開中」ステータスに設定されるときには、次のプロパティーも計算されます。

* `hs_pdf_download_link`：見積もりのPDFのURLが取り込まれます。
* `hs_locked`：`true`に設定されます。見積もりを公開した後にいずれかのプロパティーを変更するには、まず見積もりの`hs_status`を`DRAFT`、`PENDING_APPROVAL`、または`REJECTED`に更新する必要があります。
* `hs_quote_link`：見積もりの一般公開URL。これは読み取り専用プロパティーで、公開後にAPIを介して設定することはできません。
* `hs_esign_num_signers_required`：[電子署名を有効](#enable-e-signatures)にしている場合、必要な署名の数が表示されます。
* `hs_payment_status`：支払いを有効にしている場合の支払い回収のステータス。支払いを有効にして公開すると、このプロパティーはPENDINGに設定されます。購入者が見積もりを通じて支払いを送信すると、ステータスはそれに応じて自動的に更新されます。詳しくは[支払いを有効にする](https://developers.hubspot.jp/docs/api-reference/crm-quotes-v3/guide#enable-payments)方法をご確認ください。

## 見積もりを取得する

見積もりを個別に、または一括で取得できます。

* 個々の見積もりを取得するには、`/crm/v3/objects/quotes/{quoteID}`に`GET`リクエストを送信します。
* 全ての見積もりのリストをリクエストするには`/crm/v3/objects/quotes`に`GET`リクエストを送信します。

これらのエンドポイントに対し、リクエストのURLに次のクエリーパラメーターを含めることができます。

\| パラメーター | 説明 |
\| --- | --- | --- |
\| `properties` | レスポンスで返されるプロパティーのカンマ区切りリスト。リクエスト対象の見積もりで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 |
\| `propertiesWithHistory` | レスポンスで返される現在および過去のプロパティーのカンマ区切りリスト。リクエスト対象の見積もりで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 |
\| `associations` | 関連付けられたIDを取得する対象のオブジェクトのカンマ区切りリスト。存在しない関連付けを指定した場合、その関連付けはレスポンスで返されません。詳しくは[関連付けAPI](/api-reference/crm-associations-v4/guide) | をご参照ください。 |

IDを指定して特定の複数の見積もりを一括取得するには、`POST`リクエストを`crm/v3/objects/quotes/batch/read`に送信し、そのリクエスト本文に取得する見積もりのIDを含めます。また、返すプロパティーを指定する`properties`配列を含めることもできます。このバッチエンドポイントは関連付けを取得できません。詳しくは、[関連付けAPI](/api-reference/crm-associations-v4/guide)を使用して関連付けを一括読み取りする方法をご参照ください。

```json theme={null}
{
  "inputs": [
    {
      "id": "342007287"
    },
    {
      "id": "81204505203"
    }
  ],
  "properties": ["hs_content", "hs_sentiment", "hs_submission_timestamp"]
}
```

## スコープ

有効で公開可能な見積もりを作成するには、次のスコープが必要です。

* `crm.objects.quotes.write`、`crm.objects.quotes.read`、`crm.objects.line_items.write`、`crm.objects.line_items.read`、`crm.objects.owners.read`、`crm.objects.contacts.write`、`crm.objects.contacts.read`、`crm.objects.deals.write`、`crm.objects.deals.read`、`crm.objects.companies.write`、`crm.objects.companies.read`
* `crm.schemas.quote.read`、`crm.schemas.line_items.read`、`crm.schemas.contacts.read`、`crm.schemas.deals.read`、`crm.schemas.companies.read`
