AWS Bedrock's pitch for an Acumatica integration is straightforward: if you're already running infrastructure on AWS, Bedrock gives you access to Claude and other foundation models through the same IAM, VPC, and logging controls you use for everything else, without sending traffic to a separate vendor's public API endpoint. That matters more for compliance-conscious ERP deployments than it does for a prototype.
Why Bedrock instead of a direct API
Calling Claude through Bedrock's InvokeModel or Converse API means the traffic stays inside your AWS account boundary, authenticated with IAM roles rather than a separately managed API key, and logged through CloudTrail alongside everything else you already audit. For an Acumatica customer whose infrastructure and compliance posture is already AWS-centric — VPC-hosted integration services, Lambda-based business event handlers — this removes one more external dependency and secret to manage.
import boto3
bedrock = boto3.client("bedrock-runtime", region_name="us-east-1")
response = bedrock.converse(
modelId="anthropic.claude-sonnet-4-5-v1:0",
messages=[{"role": "user", "content": [{"text": "Summarize this AP bill for review."}]}],
toolConfig={"tools": [get_vendor_bill_tool_spec]},
inferenceConfig={"maxTokens": 1024}
)
The tool-use flow is the same loop
Bedrock's Converse API exposes tool use in a broadly equivalent shape to Anthropic's native Messages API — the model returns a tool-use block, your code executes it against Acumatica's REST API, and you feed the result back. The architectural principles don't change with the hosting layer: narrow, typed tools; a hard split between read and write operations; human approval gating anything that posts a transaction.
New Claude model versions typically land on Bedrock somewhat after they're available through Anthropic's own API, and region availability varies. If your integration needs the latest model capabilities immediately, check Bedrock's supported model list for your region before committing to it as the only path — Amazon publishes availability by region and it changes over time.
Triggering from Acumatica business events
A natural integration shape: an Acumatica business event (say, a new AP bill in a pending-review status) fires a webhook to an API Gateway endpoint backed by a Lambda function, which calls Bedrock to summarize or classify the bill, and writes the result back to a custom field via the Acumatica REST API. This keeps the AI call stateless and event-driven rather than polling, and keeps the Lambda function itself simple — it is glue, not business logic.
Cost and observability
Bedrock bills per-token like the native APIs, but CloudWatch gives you request-level metrics and cost allocation tags for free if your Lambda functions are already tagged by workload — useful for a multi-client MSP-style Acumatica practice that needs to attribute AI spend per customer without building separate billing infrastructure.
Wrapping up
Bedrock is not a different agent architecture — it's the same tool-use loop and guardrails, hosted inside AWS's identity and audit boundary. Choose it when that boundary already matters to your compliance posture, and confirm model version availability in your region before you commit. If you are stuck on something specific, reach out or keep reading through the rest of the Acumatica blog.
Independent software engineer in Nairobi specialising in Acumatica customisations, Laravel backends, and tax fiscalisation integrations across East and Southern Africa.