開発者

要素の埋め込み

型付きプリミティブを使用して、React 製品に署名 UI を作成します。プロバイダー、ステータス、署名者、独自のページ シェル内でレンダリングする署名キャプチャ コンポーネントです。

4 つのステップで要素を統合

  1. 1

    パッケージをインストールする

    React 18+ プロジェクトに @endorsed/elements を追加します。ピア Dep は React および React DOM のみであり、ベンダー SDK のスプロール性はありません。

  2. 2

    サーバー側で署名セッショントークンを作成します

    バックエンドから、エンベロープ ID と署名者の電子メールを使用して /api/signing-sessions を POST します。応答には、その署名者を対象とした短期間の署名セッション トークンが含まれています。

  3. 3

    署名ルートを <EndorsedProvider> でラップします。

    プロバイダーは、API 設定をプリミティブに組み込みます。プロップのドリルは必要ありません。 useSigningSession() でセッション トークンを引き換えて、<EnvelopeStatus>、<SignerInfo>、および <SignatureField> を独自のレイアウト内にレンダリングします。

  4. 4

    署名の送信とステータスのコールバックを処理します

    useSignatureSubmit() は、キャプチャされた署名を /api/signing-sessions/:id/signature に投稿します。ステータスの遷移をリッスンし、SigningSessionStatus が反転したときに署名者を独自の成功/拒否ページにルーティングします。

最小限の埋め込み例

同梱のプリミティブを使用した構成可能な署名面。前提条件: React 18 以降、およびサーバー側で作成された署名セッション トークン。期待される出力: 署名者は、エンベロープのステータス、ID、署名パッドをすべて製品 Chrome 内で確認できます。

tsx
import {
  EndorsedProvider,
  EnvelopeStatus,
  SignerInfo,
  SignatureField,
  useSigningSession,
} from '@endorsed/elements';

// 1. Wrap once at the app root (or per-signing-route).
export function App({ children }: { children: React.ReactNode }) {
  return (
    <EndorsedProvider
      baseUrl={process.env.NEXT_PUBLIC_ENDORSED_BASE_URL}
      // No API key in the browser. The provider only holds config.
    >
      {children}
    </EndorsedProvider>
  );
}

// 2. Render the signing surface. Compose these primitives into your
//    own page shell — headers, footers, and layout stay yours.
export function SigningPage({ sessionToken }: { sessionToken: string }) {
  const { status, envelope, signer } = useSigningSession(sessionToken);

  if (status === 'loading') return <p>Loading signing session…</p>;
  if (status === 'expired' || status === 'revoked') return <p>This link has expired.</p>;

  return (
    <section>
      <EnvelopeStatus value={envelope.status} />
      <SignerInfo values={{ name: signer.name, email: signer.email }} />
      <SignatureField
        onSubmitted={(result) => {
          // Advance your product state — redirect, mark task done, etc.
          console.log('Signature captured', result.signatureId);
        }}
      />
    </section>
  );
}

Elements には、構成可能なプリミティブ (プロバイダー、ステータス/署名者の表示、署名のキャプチャ) が同梱されています。上記のプリミティブを作成するか、署名セッション URL を介してホストされた署名者を埋め込みます。

埋め込みで処理できるもの

📄

ドキュメントレンダリング

PDF レンダリング、ズーム、スクロール、ページ ナビゲーション — モバイル Safari を含むクロスブラウザー。

✍️

署名のキャプチャ

署名を描く、入力する、またはアップロードします。ブラウザーに癖がなく、デバイス間で一貫したキャプチャ エクスペリエンスを実現します。

🔐

本人確認

OTP チェックは埋め込み内で処理されます。製品に個別の認証 UI は必要ありません。

📋

フィールドナビゲーション

送信前の必須フィールドの強制を伴う、ガイド付きフィールドごとのナビゲーションが許可されています。

よくある質問

要素の埋め込み — 製品内

署名面は、ブランドとともにドメイン上にインラインでレンダリングされます。製品フレーム、ヘッダー、ナビゲーション — EndorsedSign はドキュメントとフィールドのやり取りを処理します。

ステータスとアクションが入力されたカスタマーポータルの署名者文書リスト
要素は、架空の SaaS 製品内にレンダリングされて埋め込まれます。署名面は製品のクロム内にあります。リダイレクト、iframe、EndorsedSign ブランドは表示されません。

独自のサンドボックス テナントで Elements を試す

クイックスタート経由でサンドボックスを要求し、バックエンドから署名セッション トークンを生成し、上記のプリミティブを React 18 以降のアプリにドロップします。