Menu

Coding agents call the processor's API without ever holding its key.

An agent works with a pass. When it calls an API the pass allows, the boundary attaches the key as the request leaves your network.

Agents pull .env files into their context, and commits made with Claude Code leaked secrets at 3.2%, against a 1.5% baseline, in GitGuardian's 2026 count.

The model reads the agent's task and proposes the pass. One of your approvers signs it, and a pass to a live API needs the CTO.

  • What the agent holds: a pass that ends at 18:00
  • What it never holds: the key itself
Is this your firm?
A coding agent in the payments repository: can call the processor's test API, holds a pass that ends at 18:00, never holds the key.
A coding agent in the payments repository: it can call the processor's test API and holds a pass that ends at 18:00. It never holds the key.

It writes only what a signed plan names.

The agent reads across your systems for the model. Writes happen inside an approved rotation and nowhere else.

  • Code hosts

    every commit read, nothing written

  • CI logs

    two years read, nothing written

  • Chat and tickets

    channels and spaces you choose, read only

  • Clusters

    manifests read; approved Secrets written

  • Infrastructure state

    Terraform state read, never written

  • Your scanner's export

    TruffleHog, GitGuardian, GitHub alerts

Your security team will want to see what an agent did with a key it never held.

For each request: the time, the agent and its pass, the API and what it asked for in a line the model writes, whether a key was attached, and whose approval it ran under.

The boundary's log: 11:20 refunds list on the test API, key added, allowed; 11:22 card lookup, allowed; 11:31 the live API, not in its pass, refused.

The boundary's log in the example: 11:20 refunds list, key added, allowed; 11:22 card lookup, allowed; 11:31 live API, not in the pass, refused.

A request outside the pass is refused, logged and sent to the approver. In the example, the agent tried the live API at 11:31.

Test API request bodies are kept 30 days. Live payment API bodies never are, only their size and fingerprint, since they can carry card data.

Your request has been received.

Expect a message from Bitting. It goes to the address you gave.