既存システムから、契約書の生成・署名依頼の送付・締結状況の取得を自動化できるREST APIです。 代理店契約やポスティング受託契約などを、自社の業務システムやCRMに組み込んで発行できます。 サーバーサイドからの呼び出しを想定しています(APIキーは公開しないでください)。
すべてのリクエストに、発行したAPIキーをBearerトークンとして付与します。キーは設定 → API連携で発行・失効できます。キーごとにスコープ(権限)を持ちます。
Authorization: Bearer msk_live_xxxxxxxxxxxxxxxxcontracts:write — 契約書・契約セットの生成と送付contracts:read — 状態・署名済みPDFの取得webhooks:manage — Webhookの登録・削除ベースURL: https://sign.unser-inc.com
/api/v1/contracts契約書を1通生成して署名依頼を送付contracts:write
/api/v1/contract-packages契約セット(複数書類)をまとめて生成・送付contracts:write
/api/v1/contracts/{id}契約書のステータス・署名状況を取得contracts:read
/api/v1/contracts/{id}/pdf署名完了後の最終PDF(証明書込み)を取得contracts:read
/api/v1/contracts/{id}/remind未署名者へ署名依頼を再送contracts:write
/api/v1/templates利用可能なテンプレート/契約セットと入力項目の一覧
/api/v1/webhooks登録済みWebhook一覧webhooks:manage
/api/v1/webhooksWebhookエンドポイントを登録webhooks:manage
/api/v1/webhooks/{id}Webhookを削除webhooks:manage
機械可読な仕様: OpenAPI (openapi.json)
template_id と当事者情報・条件を渡すと、PDFを生成し、相手方(send: true の場合)へ署名依頼メールを送ります。 利用可能な template_id と form_values のキーは GET /api/v1/templates で取得できます。
curl -X POST https://sign.unser-inc.com/api/v1/contracts \
-H "Authorization: Bearer msk_live_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"template_id": "sales-agency",
"my_role": "甲",
"party_a": { "name": "UNSER合同会社", "representative": "在原 拓海", "address": "東京都港区南青山2-2-15" },
"party_b": { "name": "株式会社ABC商事", "representative": "山田 太郎", "address": "東京都渋谷区...", "email": "yamada@abc.co.jp" },
"form_values": {
"contract_date": "2026-06-15",
"start_date": "2026-06-15",
"fee_appointment": "5,000円/件",
"fee_meeting": "10,000円/件",
"fee_closing": "成約金額の10%"
},
"special_terms": "1. 初回3ヶ月の成約報酬は15%とする。",
"send": true
}'レスポンス(201):
{
"id": "9da065e5-e742-4b4c-93cb-2eb4629a3dc0",
"title": "営業代理店業務委託契約書 - 株式会社ABC商事",
"status": "sent",
"signing_url": "https://sign.unser-inc.com/sign/9da0...?token=..."
}package_id(例: agency-set = NDA+営業代理店業務委託、posting-client-set = NDA+業務委託)を指定すると、必要な書類一式を1回のリクエストでまとめて生成します。special_terms は全書類の特約事項として追加されます。
curl -X POST https://sign.unser-inc.com/api/v1/contract-packages \
-H "Authorization: Bearer msk_live_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"package_id": "agency-set",
"party_a": { "name": "UNSER合同会社", "representative": "在原 拓海", "address": "東京都港区南青山2-2-15" },
"party_b": { "name": "株式会社ABC商事", "representative": "山田 太郎", "address": "...", "email": "yamada@abc.co.jp" },
"form_values": { "contract_date": "2026-06-15", "start_date": "2026-06-15", "fee_closing": "成約金額の10%" },
"send": true
}'
# → NDA + 営業代理店業務委託契約 をまとめて生成・送付し、同じ package_id でグルーピングcurl https://sign.unser-inc.com/api/v1/contracts/{id} \
-H "Authorization: Bearer msk_live_xxxxxxxx"
# レスポンス
{
"id": "9da0...",
"status": "completed", // draft / sent / completed
"contract_status": "active",
"counterparty_name": "株式会社ABC商事",
"signers": [{ "email": "yamada@abc.co.jp", "name": "山田 太郎", "signed": true, "signed_at": "2026-06-16T..." }],
"completed": true
}締結(completed)後は GET /api/v1/contracts/{id}/pdf で署名・証明書込みの最終PDFをバイナリで取得できます。
エンドポイントを登録すると、署名完了(contract.completed)・差し戻し(contract.rejected)・送付(contract.sent)のタイミングで、登録URLへPOSTが届きます。ポーリング不要でリアルタイムに締結を検知できます。
POST {あなたが登録したURL}
X-MUSUBI-Event: contract.completed
X-MUSUBI-Delivery: 1b2c3d...
X-MUSUBI-Signature: sha256=9f86d081884c7d659a2feaa0...
{
"id": "1b2c3d...",
"event": "contract.completed",
"created_at": "2026-06-16T03:21:00.000Z",
"data": {
"document_id": "9da0...",
"title": "営業代理店業務委託契約書 - 株式会社ABC商事",
"status": "completed",
"contract_status": "active",
"counterparty_name": "株式会社ABC商事",
"package_id": "..."
}
}署名検証(なりすまし防止・必須)
リクエストボディ(生のJSON文字列)を、登録時に発行された whsec_... でHMAC-SHA256したものが X-MUSUBI-Signature と一致することを確認してください。
import crypto from "crypto";
// 受信側(あなたのシステム)での署名検証
function verify(rawBody, signatureHeader, secret) {
const expected = "sha256=" + crypto
.createHmac("sha256", secret) // 登録時に発行された whsec_... を使う
.update(rawBody, "utf8")
.digest("hex");
// タイミング攻撃対策に timingSafeEqual を推奨
return signatureHeader === expected;
}エラーは HTTP ステータスと { "error": "..." } で返します。
401 — キーが無効・失効済み・未指定403 — キーに必要なスコープがない400 — 必須パラメータ不足・不正なJSON404 — 対象の契約書が見つからない(他組織のものを含む)409 — PDF未完成・署名待ち者なし等の状態不整合お問い合わせ: front@unser-inc.com / 提供: UNSER合同会社