AWS Bedrock Agents + Signbee: OpenAPI Action Groups for E-Signing (2026)
Enterprise cloud architects use Amazon Bedrock Agents to orchestrate multi-step commercial workflows inside private AWS VPCs. Here is the production blueprint for wiring Signbee's OpenAPI 3.1 Action Group, AWS Secrets Manager, Return of Control human confirmation, and Amazon EventBridge webhook ingestion.
Quick Answer (TL;DR)
Amazon Bedrock Agents • OpenAPI 3.1 Action Groups + Lambda / Return of Control
To add legally binding electronic signatures to Amazon Bedrock Agents, upload Signbee's OpenAPI specification (https://signb.ee/openapi.json) to S3 and attach it as an Action Group with requireConfirmation: "ENABLED". Store your SIGNBEE_API_KEY in AWS Secrets Manager. When the Bedrock Agent synthesizes a contract from your Bedrock Knowledge Base, it prompts the operator for confirmation and invokes an AWS Lambda fulfillment handler that executes POST https://signb.ee/api/v1/send in 420ms. Completion events flow back into AWS via HMAC-SHA256 verified webhooks on Amazon API Gateway and Amazon EventBridge.
1. Why Enterprise AWS Teams Pair Bedrock Agents with Signbee
For regulated enterprises running on AWS—across fintech, healthcare, logistics, and B2B SaaS—Amazon Bedrock Agents provide a managed orchestration runtime combining foundation models (Claude 3.7 Sonnet, Amazon Nova Pro, Llama 4) with Bedrock Knowledge Bases (RAG) and Bedrock Guardrails. Yet when an enterprise Bedrock Agent finishes retrieving approved clauses from an OpenSearch Serverless knowledge base and calculating custom deal pricing from an Aurora database, it hits the classic last-mile execution barrier: how does the agent actually send the agreement for signature?
Attempting to wire legacy e-signature providers into an AWS Lambda Action Group introduces three immediate blockers that we analyzed in our 2026 developer e-signature API benchmark and DocuSign API pricing breakdown: bloated 80-megabyte SDK layers that slow down Lambda cold starts, complex multi-leg OAuth 2.0 JWT token refresh state machines, and rigid X/Y pixel coordinate tagging requirements that LLMs cannot reliably calculate.
Signbee eliminates all three bottlenecks. Because Signbee exposes a clean, OpenAPI 3.1 compliant REST endpoint (POST https://signb.ee/api/v1/send) that accepts either dynamic CommonMark markdown or pre-rendered pdf_base64 payloads authenticated with a single stateless Bearer key, your Bedrock Action Group Lambda requires zero third-party npm or pip dependencies and executes cold starts in under 150 milliseconds.
2. Reference Architecture: Bedrock Knowledge Base + Action Group + EventBridge
A production-grade contract automation pipeline on AWS separates clause retrieval, human approval, outbound API execution, and asynchronous completion handling into four decoupled AWS primitives:
Clause Grounding via Amazon Bedrock Knowledge Base
Your corporate legal team stores approved Master Services Agreement (MSA), Data Processing Addendum (DPA), and SLA templates in Amazon S3, indexed by a Bedrock Knowledge Base. When a user requests a contract, the Bedrock Agent retrieves the exact jurisdiction-verified clauses rather than improvising legal text.
OpenAPI 3.1 Action Group with User Confirmation Gate
Bedrock parses the Signbee OpenAPI schema and populates the sendDocument payload. With requireConfirmation: "ENABLED", Bedrock pauses execution and returns the structured parameter summary to the caller until explicit approval is granted.
AWS Lambda Fulfillment + AWS Secrets Manager
Upon confirmation, Bedrock invokes your Python 3.12 or Node.js 22 Lambda function. The function fetches SIGNBEE_API_KEY from AWS Secrets Manager, calls POST https://signb.ee/api/v1/send, and returns the document_id and verify_url back to the Bedrock session trace.
Event-Driven Completion via API Gateway & Amazon EventBridge
When Party B completes the mobile or desktop signing ceremony, Signbee seals the PDF with a SHA-256 certificate and posts a signed webhook to Amazon API Gateway, which validates the HMAC digest and emits a Signbee.DocumentSigned event onto Amazon EventBridge.
3. Choosing Your Bedrock Action Group Execution Pattern
Amazon Bedrock Agents support three distinct patterns for invoking external APIs like Signbee. Selecting the right pattern depends on whether your agent runs headless in a backend workflow or interactively inside a customer-facing portal:
| Criterion | Lambda + User Confirmation | Return of Control (RETURN_CONTROL) | Unattended Lambda Execution |
|---|---|---|---|
| Action Group Executor | lambda (requireConfirmation=ENABLED) | customControl: RETURN_CONTROL | lambda (requireConfirmation=DISABLED) |
| Where HTTP POST Happens | Inside AWS Lambda after user approves | Inside your web backend / API server | Inside AWS Lambda immediately |
| Pre-Send Contract Editing | Chat-based revision before approval | Full rich UI markdown editor in browser | None (fully autonomous dispatch) |
| Secret Management | AWS Secrets Manager in Lambda VPC | Application server environment secret | AWS Secrets Manager in Lambda VPC |
| Ideal Enterprise Scenario | Internal Slack/Teams deal desk bots | Customer-facing SaaS contract portals | Automated NDA & vendor onboarding |
4. Step 1: Defining the Signbee OpenAPI 3.0/3.1 Schema for Bedrock
Amazon Bedrock Agents use the description fields inside your OpenAPI specification as in-context instructions for the underlying foundation model. Below is the optimized OpenAPI Action Group specification mapped directly to Signbee's production endpoints (POST /api/v1/send and GET /api/v1/documents/{id}):
{
"openapi": "3.0.3",
"info": {
"title": "Signbee E-Signature Action Group API",
"version": "1.0.0",
"description": "Dispatches legally binding CommonMark or PDF agreements for two-party electronic signature and checks SHA-256 verification status."
},
"paths": {
"/api/v1/send": {
"post": {
"operationId": "sendDocument",
"summary": "Compile a CommonMark agreement into an immutable PDF and email a signing ceremony link to Party B.",
"description": "Binds Party A using the configured Signbee API key and emails Party B an interactive signing link.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"title",
"markdown",
"sender_name",
"sender_email",
"recipient_name",
"recipient_email"
],
"properties": {
"title": {
"type": "string",
"description": "Formal legal title of the contract (e.g. 'Master Services Agreement - Acme Corp')"
},
"markdown": {
"type": "string",
"description": "Complete contract text formatted in CommonMark markdown including tables and clauses"
},
"sender_name": {
"type": "string",
"description": "Full legal name of Party A (the sender)"
},
"sender_email": {
"type": "string",
"description": "Verified email address of Party A"
},
"recipient_name": {
"type": "string",
"description": "Full legal name of Party B (the recipient signer)"
},
"recipient_email": {
"type": "string",
"description": "Email address of Party B where the signing link will be delivered"
},
"expires_in_days": {
"type": "integer",
"description": "Number of days before the signing link expires (default 14)"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Contract compiled and dispatched for signature",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"id": { "type": "string" },
"status": { "type": "string" },
"signing_url": { "type": "string" },
"verify_url": { "type": "string" }
}
}
}
}
}
}
}
}
}
}5. Step 2: AWS Lambda Action Group Fulfillment with Secrets Manager
When Amazon Bedrock invokes an Action Group Lambda function, it passes an event dictionary containing actionGroup, apiPath, httpMethod, and requestBody.content["application/json"].properties. Below is a zero-dependency Python 3.12 Lambda handler that retrieves your Signbee API key from AWS Secrets Manager, unpacks Bedrock's property list into a standard JSON dictionary, calls Signbee's REST API, and returns the exact messageVersion: "1.0" envelope expected by Bedrock:
import json
import os
import urllib.request
import boto3
secrets_client = boto3.client("secretsmanager")
_cached_api_key = None
def get_signbee_api_key() -> str:
global _cached_api_key
if _cached_api_key is None:
secret_arn = os.environ["SIGNBEE_SECRET_ARN"]
resp = secrets_client.get_secret_value(SecretId=secret_arn)
secret_data = json.loads(resp["SecretString"])
_cached_api_key = secret_data["SIGNBEE_API_KEY"]
return _cached_api_key
def lambda_handler(event: dict, context) -> dict:
action_group = event["actionGroup"]
api_path = event["apiPath"]
http_method = event["httpMethod"]
# Convert Bedrock's [{'name': k, 'type': t, 'value': v}] list into a dict
props = (
event.get("requestBody", {})
.get("content", {})
.get("application/json", {})
.get("properties", [])
)
payload = {}
for item in props:
val = item["value"]
if item.get("type") == "integer":
val = int(val)
payload[item["name"]] = val
# Attach enterprise EventBridge API Gateway webhook URL automatically
payload["webhook_url"] = os.environ["SIGNBEE_EVENTBRIDGE_WEBHOOK_URL"]
req = urllib.request.Request(
url=f"https://signb.ee{api_path}",
data=json.dumps(payload).encode("utf-8"),
headers={
"Content-Type": "application/json",
"Authorization": f"Bearer {get_signbee_api_key()}",
"User-Agent": "AWS-Bedrock-Agent/1.0",
},
method=http_method,
)
try:
with urllib.request.urlopen(req, timeout=10) as response:
status_code = response.getcode()
resp_body = response.read().decode("utf-8")
except urllib.error.HTTPError as err:
status_code = err.code
resp_body = err.read().decode("utf-8")
return {
"messageVersion": "1.0",
"response": {
"actionGroup": action_group,
"apiPath": api_path,
"httpMethod": http_method,
"httpStatusCode": status_code,
"responseBody": {
"application/json": {
"body": resp_body
}
},
},
}6. Step 3: Handling Return of Control (RETURN_CONTROL) in TypeScript
For SaaS products building white-label e-signature workflows or interactive legal workspaces on Next.js, configuring your Action Group with customControl: "RETURN_CONTROL" gives you maximum UI control. When the Bedrock Agent finishes drafting the contract, it yields an invocationInputs chunk in the InvokeAgentCommand stream. Your frontend displays the formatted contract for human review, executes the Signbee API call upon approval, and resumes the Bedrock session with the resulting invocationId:
import {
BedrockAgentRuntimeClient,
InvokeAgentCommand,
} from "@aws-sdk/client-bedrock-agent-runtime";
const bedrock = new BedrockAgentRuntimeClient({ region: "us-east-1" });
export async function confirmAndSendSignbeeContract(
sessionId: string,
invocationId: string,
actionGroup: string,
approvedPayload: {
title: string;
markdown: string;
sender_name: string;
sender_email: string;
recipient_name: string;
recipient_email: string;
}
) {
// 1. Dispatch the human-approved contract via Signbee REST API
const signbeeRes = await fetch("https://signb.ee/api/v1/send", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.SIGNBEE_API_KEY}`,
},
body: JSON.stringify(approvedPayload),
});
if (!signbeeRes.ok) {
throw new Error(`Signbee error (${signbeeRes.status}): ${await signbeeRes.text()}`);
}
const signbeeResult = await signbeeRes.json();
// 2. Return the execution result back into the paused Bedrock Agent session
const command = new InvokeAgentCommand({
agentId: process.env.BEDROCK_AGENT_ID!,
agentAliasId: process.env.BEDROCK_AGENT_ALIAS_ID!,
sessionId,
sessionState: {
invocationId,
returnControlInvocationResults: [
{
apiResult: {
actionGroup,
apiPath: "/api/v1/send",
httpMethod: "POST",
httpStatusCode: 200,
responseBody: {
"application/json": {
body: JSON.stringify(signbeeResult),
},
},
},
},
],
},
});
return await bedrock.send(command);
}7. TCO & Operational Comparison: Signbee Action Group vs. Self-Hosted ECS E-Sign
Some AWS infrastructure teams initially consider deploying an open-source e-signature container on Amazon ECS Fargate alongside RDS PostgreSQL and Amazon SES. However, once you factor in multi-AZ RDS instances, NAT Gateways, ALB fixed hourly costs, and HSM certificate maintenance, a self-hosted stack costs $280 to $550 per month before sending a single document. As detailed in our 2026 e-signature API pricing comparison and affordable e-signature integration guide, pairing serverless AWS Lambda Action Groups with Signbee reduces baseline infrastructure cost to zero:
| AWS Operational Metric | Self-Hosted Open-Source on ECS + RDS | Bedrock Action Group + Signbee API |
|---|---|---|
| Idle Monthly AWS Infrastructure Cost | $310–$540/mo (ALB, NAT, Multi-AZ RDS, ECS) | $0.00/mo (Scale-to-zero AWS Lambda) |
| Action Group Lambda Package Size | 45 MB+ (PDF rendering & crypto libs) | < 4 KB (Pure stdlib JSON POST) |
| Lambda Cold-Start Overhead | 1,200ms – 2,400ms | 110ms – 160ms |
| Email Deliverability & DKIM/SPF | Manual SES sandbox exit & bounce handling | Managed high-reputation delivery included |
| Tamper-Evident Audit Ledger | Self-managed database backups | SHA-256 Certificate + signb.ee/verify/[id] |
Every developer and AWS solutions architect can test this Action Group architecture immediately using Signbee's free e-signature API tier—no enterprise sales calls, no seat minimums, and full access to OpenAPI 3.1 endpoints.
8. Frequently Asked Questions: AWS Bedrock Agents + Signbee
How do I connect an Amazon Bedrock Agent to the Signbee e-signature API?
To integrate Signbee with Amazon Bedrock Agents, create an Action Group defined by an OpenAPI 3.0/3.1 schema derived from https://signb.ee/openapi.json. Configure the Action Group executor to invoke either an AWS Lambda fulfillment function (which retrieves your SIGNBEE_API_KEY from AWS Secrets Manager and calls POST https://signb.ee/api/v1/send) or RETURN_CONTROL to pass the synthesized contract payload back to your client application for human-in-the-loop approval.
When should I use AWS Lambda fulfillment versus Return of Control (RETURN_CONTROL) in Bedrock Agents?
Use AWS Lambda fulfillment with requireConfirmation set to ENABLED when you want Amazon Bedrock to orchestrate the entire HTTP call inside your AWS VPC immediately after the user confirms the prompt. Choose RETURN_CONTROL when your frontend web portal wants to render a rich side-by-side preview of the generated CommonMark contract, allow an in-house legal reviewer to edit a clause in the browser, and then trigger the Signbee API directly from your application backend.
How do I securely store and rotate the Signbee API key in an AWS Bedrock architecture?
Never hardcode your Signbee Bearer token inside Bedrock agent instructions, prompt templates, or Lambda environment variables in plain text. Store SIGNBEE_API_KEY in AWS Secrets Manager encrypted with an AWS KMS Customer Managed Key (CMK). Grant your Action Group Lambda execution role least-privilege secretsmanager:GetSecretValue permissions scoped strictly to that secret ARN, and cache the decrypted token in memory using the AWS Parameters and Secrets Lambda Extension.
Can Amazon Bedrock Knowledge Bases (RAG) feed approved legal clauses into Signbee contracts?
Yes. Attaching an Amazon Bedrock Knowledge Base backed by Amazon OpenSearch Serverless or Aurora PostgreSQL pgvector allows your Bedrock Agent to retrieve jurisdiction-specific indemnification, data processing (DPA), and governing law clauses from your approved legal playbook. The agent combines those verified clauses with deal metadata to assemble a complete CommonMark markdown contract before invoking the Signbee sendDocument Action Group.
How should enterprise AWS architectures ingest Signbee's document.signed webhooks?
For high-reliability enterprise event ingestion, point your Signbee webhook_url to an Amazon API Gateway HTTP endpoint backed by a signature-verifying Lambda function or direct Amazon SQS / EventBridge integration. Verify the x-signbee-signature header using HMAC-SHA256 against your webhook secret before publishing a DetailType: "Signbee.DocumentSigned" event onto your Amazon EventBridge bus to trigger downstream ERP, Salesforce, or S3 archival rules.
Does Signbee meet enterprise audit and cryptographic standards for AWS workloads?
Yes. Every contract dispatched through Signbee via Amazon Bedrock Agents complies with the US ESIGN Act, UETA, UK Electronic Communications Act 2000, and EU eIDAS Regulation. Signbee binds Party A via authenticated API credentials and originating network forensics, guides Party B through an encrypted signing ceremony, and seals the completed PDF with an immutable SHA-256 hash and an A4 Certificate of Completion verifiable at https://signb.ee/verify/[id].
Deploy Signbee as an Amazon Bedrock Action Group Today
Download our OpenAPI 3.1 spec, generate a Bearer API key, and connect your AWS Bedrock Agents to deterministic, SHA-256 certified electronic signatures in minutes.