# NetSuite の Stripe 顧客と顧客残高 Stripe の顧客と顧客残高を NetSuite で自動的に表現するコネクタについてご紹介します。 Stripe Connector for NetSuite は、Stripe の請求書と関連顧客を請求書および顧客レコードとして NetSuite に自動的に同期します。これは、送信する Stripe の請求書と、Stripe に詳細が保存されている顧客による支払いに適用されます。コネクターは、その顧客との最初の取引中に顧客を作成またはリンクします。 ## NetSuite による顧客の表現方法 コネクターは、NetSuite 内の顧客を以下の方法で表すことができます。 - [新しい Stripe 顧客を新しい NetSuite 顧客として同期する](https://docs.stripe.com/use-stripe-apps/netsuite/stripe-customers-netsuite.md#new-customer) - [新しい Stripe 顧客を既存の NetSuite 顧客にリンク](https://docs.stripe.com/use-stripe-apps/netsuite/stripe-customers-netsuite.md#existing-customer) - [すべての顧客を単一のグローバル顧客に関連付ける](https://docs.stripe.com/use-stripe-apps/netsuite/stripe-customers-netsuite.md#no-customer-data) NetSuite に顧客データを保存したくない場合は、単一のグローバル顧客を使用します。 ### 新しい Stripe 顧客を新しい NetSuite 顧客として同期する コネクターは、各 Stripe 顧客を顧客レコードとして NetSuite に同期します。これにより、NetSuite で顧客データを取得して分析し、顧客の支出に関する詳細なレポートを作成し、NetSuite で領収書を管理できるようになります。 状況によっては、すべての Stripe 顧客に対して顧客レコードを作成したくないことがあります。以下に例を示します。 - ビジネスフローの製品の登録に支払いが必要ない場合、コネクターは会計に影響を与えることなく、Stripe 顧客用の NetSuite 顧客レコードを作成します。このアプローチは、NetSuite 顧客データベースに追加の影響を与える可能性があります。 - 顧客の登録件数が多く (1 日あたり数千件)、NetSuite で顧客データのレポートが不要な場合、この方法は推奨されません。NetSuite 環境で処理できる量を上回る項目が NetSuite 顧客データベースに追加される可能性があります。 - NetSuite アカウントで毎日作成される顧客の数が多い場合、関連するトラフィックの量がコネクターの同期時間に影響することがあります。 #### 顧客の同期のタイミング デフォルトでは、コネクターは Stripe 顧客の最初の取引を同期するときに NetSuite 顧客レコードを作成します。 代わりに、以下のいずれかを実行することもできます。 - Stripe 顧客の作成後すぐに NetSuite 顧客レコードを作成するようにコネクターを構成します。これを行うには、`Disable customer events` 機能を無効にするように実装パートナーに依頼してください。会計および技術的な影響をすべて理解するには、実装パートナーにご相談ください。 - 顧客の同期を遅らせるために、[メタデータを追加](https://docs.stripe.com/use-stripe-apps/netsuite/custom-payment-application.md#override-sync-timing)して、コネクターが NetSuite 顧客レコードを作成するタイミングを指定します。詳細は、実装パートナーにお問い合わせください。 #### 同期する顧客の詳細 コネクターは、Stripe から NetSuite に以下の顧客の詳細を同期します。Stripe メタデータを使用すると、追加フィールドをマッピングしたり、以下のフィールドの大部分を上書きしたりできるほか、NetSuite フィールドのデフォルト値を指定することも可能です。 | Stripe のフィールド | NetSuite のフィールド | 説明 | | ------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Stripe ID | エンティティ ID と外部 ID | NetSuite にはエンティティ ID が必要です。Stripe で名前 (会社名または個人の姓名) を指定しない場合、コネクターは NetSuite のエンティティ ID として Stripe ID を使用します。Stripe の顧客 ID は `cus_` で始まり、NetSuite のすべての顧客レコードで一意です。 | | メールアドレス | メールアドレス | Stripe でメールアドレスを指定しない場合、コネクターは Stripe の顧客 ID を使用します。 | | 説明 | 会社名 (または氏名) | NetSuite では顧客名が必要です。Stripe で名前を指定しない場合、コネクターは顧客のメールアドレスを使用します。 | | 電話 | 電話 | Stripe 顧客の `Phone` フィールドは、NetSuite 顧客レコードのヘッダーレベルの `Phone` フィールドにマッピングされます。 | | 配送先住所 | デフォルトの配送先住所 | Stripe [顧客](https://docs.stripe.com/api/customers.md)で指定されている場合、NetSuite の顧客レコードはこれをデフォルトの配送先住所として使用します。コネクターは次のフィールドを使用します: `Name`、`Phone`、`Address1`、`Address2`、`City`、`State`、`Zip`、`Country`。 国フィールドはオプションです。Stripe で国を指定しない場合、コネクターは NetSuite アカウントのデフォルトの国を使用します。[ISO-3166 標準](https://en.wikipedia.org/wiki/ISO_3166-1)に準拠する 2 文字コード (ISO2) またはフルネームを使用します。値が準拠していない場合、コネクターはそれを空に設定します。 | | 請求先住所 | デフォルトの請求先住所 | Stripe 顧客の[支払い元](https://docs.stripe.com/api/payment_methods.md)で指定されている場合、NetSuite の顧客レコードはこれをデフォルトの請求先住所として使用します。コネクターは、`Address1`、`City` または `Zip`、および `State` のフィールドを使用します。 国フィールドはオプションです。Stripe で国を指定しない場合、コネクターは NetSuite アカウントのデフォルトの国を使用します。[ISO-3166 標準](https://en.wikipedia.org/wiki/ISO_3166-1)に準拠する 2 文字コード (ISO2) またはフルネームを使用します。値が準拠していない場合、コネクターはそれを空に設定します。 | #### NetSuite で顧客を作成する NetSuite には、会社と個人の 2 種類の顧客があります。コネクターは、デフォルトで顧客を会社として作成します。 顧客を個人として作成する場合、NetSuite では名と姓が必要です。次のいずれかの方法で、NetSuite に名前を渡すことができます。 | 方式 | 説明 | | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Stripe 顧客で `name` フィールドを使用する | `name` フィールドに氏名を渡すと、コネクターは `name` の最初のスペースを使用して氏名を名と姓に分割します。 たとえば、「Jane Sally Doe」は、名が「Jane」、姓が「Sally Doe」として同期されます。「Sir Richard Branson」の「Sir」など、名前の接頭辞を収集する場合は、メタデータを使用して「Sir」が名として使用されないようにします。 | | Stripe 顧客で `description` フィールドを使用する | `description` フィールドにフルネームを渡すと、コネクターは `description` の最初のスペースを使用して氏名を名と姓に分割します。 | | メタデータを使用する | メタデータを使用して名と姓を渡す例を次に示します。 ``` Stripe::Customer.create( description: "Sample Customer", email: "customer@example.com", metadata: { netsuite_first_name: 'First', netsuite_last_name: 'Last' } ) ``` | #### NetSuite で顧客データを更新する コネクターは、NetSuite 顧客レコードを作成した後、自動的に更新しません。これにより、Stripe レコードに加えられた更新が、NetSuite 顧客レコードに加えられた更新情報を上書きすることがなくなります。 1 つのシステム (Salesforce から NetSuite など) で NetSuite 顧客を作成し、今後の更新内容を NetSuite 顧客に同期させたい場合は、既存の導入を使用できます。NetSuite 内部 ID を Stripe 顧客に追加するか、[顧客照合システム](https://docs.stripe.com/use-stripe-apps/netsuite/stripe-customers-netsuite.md#customer-matching-system)を使用して、NetSuite 顧客を Stripe 顧客にリンクします。 #### 複数の通貨 複数の通貨での決済を受け付ける場合、コネクターはすべての有効な NetSuite 通貨を Stripe で作成された NetSuite 顧客に追加します。 ### 新しい Stripe 顧客を既存の NetSuite 顧客にリンク Stripe と NetSuite の両方に顧客がいる場合は、顧客照合システムまたはメタデータを使用して、2 つのシステム間で顧客をリンクできます。既存の顧客を関連付けると、Stripe または NetSuite で顧客が重複するのを防ぐことができます。 #### 顧客照合システム 顧客照合システムを使用するには、実装パートナーに、Stripe アプリ設定でこの機能を有効にするよう依頼します。会計および技術的な影響のすべてを理解するには、実装パートナーにご相談ください。 顧客照合システムでは、標準フィールド (名前や説明など) またはカスタムフィールド (Stripe のメタデータや NetSuite のカスタムフィールドなど) が使用されます。 **顧客照合 NetSuite フィールド**と**顧客照合 Stripe フィールド**に一致するデータを含むフィールドを入力することで、Stripe 顧客を既存の NetSuite 顧客に自動的に関連付けることができます。 たとえば、Stripe 顧客と NetSuite 顧客の両方にあるメールアドレスまたは内部顧客 ID を使用できます。 顧客照合システムには、以下の要件があります。 - 顧客レコードのみが照合されます。コネクターはリードや連絡先などとは照合しません。 - 各フィールドに含まれるデータ全体が一致している必要があります。 - 部分的なデータやデータを含む文字列は使用できません。たとえば、コネクターは、ID が `12345` の NetSuite フィールドを `company ID 12345` の Stripe の説明と一致させることはできません。 - 空白または大文字小文字は、照合プロセスに影響しません。 コネクターは、複数の一致が見つかった場合、最初に見つかった一致を使用します。一致が見つからない場合、コネクターはデフォルトで、Stripe 顧客に対して NetSuite に固有の顧客レコードを作成します。または、`Global Stripe customer workflow` 設定を有効にした場合、コネクターは汎用の Stripe 顧客を使用します。 #### Stripe メタデータの NetSuite ID Stripe 顧客のメタデータで NetSuite 顧客の内部 ID を指定して、既存の NetSuite 顧客レコードを Stripe 顧客にリンクします。たとえば、`netsuite_customer_id: 123` です。 コネクターが指定された内部 ID を持つ NetSuite 顧客を見つけられない場合、顧客の同期は失敗します。これを解決するには、Stripe アプリレコードを同期したドロワーで NetSuite 顧客レコードと Stripe 顧客を手動で関連付けます。 #### 一致した顧客を更新する 顧客照合システムが Stripe 顧客を NetSuite の既存顧客に関連付ける前に、コネクターは顧客レコードの `externalId` フィールドに値があるかどうかを確認します。値がある場合、コネクターはフィールドを更新せず、別のシステムで使用される重要な識別子が上書きされるのを防ぎます。 コネクターは常に、Stripe 顧客 ID (`cus_` で始まる) を NetSuite レコードの `comments` フィールドに追加しようとします。また、NetSuite を設定して、顧客の `comments` フィールドを除外することもできます。外部 ID に値が含まれており、`comments` フィールドが除外されている場合、コネクターは NetSuite 顧客を更新しない可能性があります。NetSuite では関連付けられた顧客は表示されず、Stripe でのみ表示されます。 #### 重複した顧客を統合する コネクターによって重複した顧客が作成された場合には、Stripe 顧客への関連付けを維持しながら、既存の顧客と統合することができます。NetSuite で顧客を統合すると、ソース顧客は削除され、ターゲット顧客は残ります。 Stripe の顧客を、コネクターが作成または関連付けた NetSuite 顧客と統合することができます。作成または関連付けた顧客は、(入力済みであり、まだ統合されていない) ターゲット顧客である必要があります。これにより、同じ NetSuite 顧客が関連付けられたままになり、コネクターがその顧客との今後の取引に使用できるようになります。 統合により、コネクターが作成または関連付けた NetSuite 顧客 (ソース顧客) が削除される可能性があります。その場合、コネクターは設定に基づいて次のいずれかを実行します。 - 顧客照合システムを使用している場合、コネクターは削除された顧客を検出し、代わりに NetSuite 内の既存の顧客を検索して照合します。コネクターは、アプリ設定で指定した照合フィールドを使用します。 - 顧客照合システムを使用しない場合、顧客リンクは切断されます。Stripe ID を使用して、Stripe アプリレコードを同期したドロワーで顧客を検索できます。失敗した顧客レコードでは、手動上書きツールを使用して、顧客を新しい NetSuite 顧客の内部 ID に再度関連付けることができます。 ### すべての顧客を単一のグローバル顧客に関連付ける 単一のグローバル顧客を使用するには、実装パートナーに、Stripe アプリ設定で `Enable global customer workflow` 機能を有効にするよう依頼します。会計および技術的な影響のすべてを理解するには、実装パートナーにご相談ください。 NetSuite に顧客データを保存しない場合は、すべての Stripe 顧客を `Stripe Unallocated Charges`という単一のグローバル顧客に関連付けることができます。多数の新規顧客がいて、登録手続きがセルフサービスであり、NetSuite で顧客に関するレポートを作成する必要がない場合は、この方法を使用します。 顧客なしで作成された Stripe 料金は、`Stripe Unallocated Charges` の下に料金として表示されます。 #### NetSuite 複数子会社の顧客 この機能を使用すると、単一の NetSuite 顧客を複数の子会社に関連付けることができます。コネクターは、すべてのケースでこの機能をサポートしているわけではなく、通常、子会社の顧客は Stripe アカウントの顧客とマンツーマンの関係にある必要があります。たとえば、Stripe の請求および請求書のワークフローで問題が発生するのを防ぐには、子会社ごとに固有の NetSuite 顧客を作成します。 ## NetSuite による顧客残高の表現方法 このコネクタは、Stripe [顧客残高](https://docs.stripe.com/billing/customer/balance.md)を使用後にのみ NetSuite で表します。 コネクタは、請求額が次のような形で決済された場合に、請求書に対するクレジットメモを作成します。 - 請求書が顧客残高で決済された場合 - 請求書が決済済みとしてマークされます。 請求書が顧客残高で一部のみ決済される場合、コネクタがクレジットメモを作成するには、残りの残高に対応する Stripe の決済が存在している必要があります。コネクタは、未決済額があり、一部決済済みの請求書に対してクレジットメモを作成しません。 顧客残高を表すクレジットメモには以下が含まれます。 - `Stripe: [invoice ID]. This credit memo was created by a Stripe customer's balance.` - 請求書の明細 ### 顧客残高に使用される NetSuite アイテム 顧客残高貸方の一意のアイテムを使用するには、Stripe アプリの設定で **顧客残高のグローバルアイテム** 機能を有効にするよう実装パートナーに依頼します。会計および技術的な影響のすべてを理解するには、実装パートナーにご相談ください。 商品価格を値下げした後に作成される最初の請求書で顧客残高が完全に使用されない場合、コネクタは以下を実行します。 - 顧客残高を表すクレジットメモを将来の請求書に適用 - NetSuite でクレジットメモを Stripe 顧客残高アイテムとして表示 顧客残高が何を表しているかを判断する方法はないため、コネクタはグローバルアイテムを使用して NetSuite で顧客残高利用額を追跡します。オプションとして、顧客残高貸方に一意のアイテムを使用できます。これにより、顧客残高を通じて提供されたすべての割引を指定の総勘定元帳勘定に転記できます。次に、アイテムごとにレポートを作成して、顧客残高利用額の内訳を確認できます。 ### マイナスの請求書 NetSuite は、請求書のマイナス金額に対応していません。コネクタは、金額がゼロの項目をもれなく含む請求書を作成することで、このシナリオに対応します。コネクタは、後続の請求書に顧客残高が利用された場合に顧客残高額 (請求書のマイナス金額) を表示します。 例えば、顧客のサブスクリプションの価格を値下げするとします。このとき、サブスクリプション商品の未使用分に対する比例配分額 (日割り計算) が、新しい商品価格の比例配分額を超えてしまいます。この場合、Stripe の請求書の合計金額はマイナスになるため、その分は顧客残高に追加されます。 ## See also - [入金の自動化](https://docs.stripe.com/use-stripe-apps/netsuite/deposit-automation.md) - [請求書の自動化](https://docs.stripe.com/use-stripe-apps/netsuite/invoice-automation.md) - [請求書決済ページ](https://docs.stripe.com/use-stripe-apps/netsuite/invoice-payment-page.md) - [顧客決済ページ](https://docs.stripe.com/use-stripe-apps/netsuite/customer-payment-page.md)