Developer reference

A check on every
payment request.

Send a payment to be checked, with an idempotency key. Axiom checks it against the policy you granted and returns an accepted response or an error before any payment provider/bank handoff. Every request carries a request_id you can use to look up its audit trail.

The concepts

The core concepts behind the first developer workflow.

payment request

A request to move money

An agent prepares a payment request with an owned agent_id, an amount in minor units, merchant identifiers, and the authority you delegated. Nothing executes until Axiom checks it.

Idempotency-Key

Safe to retry

Send an idempotency key with each request. Retrying with the same key returns the original decision instead of creating a duplicate.

response

accepted or error

Axiom verifies identity, permission, merchant and amount controls. A successful response is accepted; policy denials and verification failures return an error response with its own request_id.

request_id

One ID, full trace

Every request returns a request_id. Use it to look up the audit trail for what was checked and decided.

Quickstart

Three calls: send a payment to be checked, inspect the immediate response, and look up the audit trail. Examples use $AXIOM_API_BASE as a placeholder for the API base URL provided during pilot setup.

1 · create-payment.sh
# Auth/session transport is issued during pilot onboarding curl -X POST "$AXIOM_API_BASE/v1/payments" \ -H "Idempotency-Key: req_3f29a1c4" \ -H "Content-Type: application/json" \ -d '{ "agent_id": "a6064a27-3705-4f25-a5f4-2c6a5a58173d", "amount_minor": 24800, "currency": "GBP", "merchant_id": "merchant.amazon.co.uk", "merchant_ref": "ord_123" }'
2a · response — accepted
{ "status": "accepted", "payment_id": "pay_sbx_4f8fa65b8d7f0e5ec3ca0f07", "request_id": "req_3f29a1c4", } # Accepted = handed to the payment provider/bank for # execution. Not settled, not final.
2b · response — policy deny
{ "request_id": "req_88c0d1e2", "error_code": "payment_policy_violation", "message": "payment policy violation: limit_exceeded" } # Blocked before any payment provider/bank handoff. # The reason is recorded as evidence.
3 · look-up-audit-trail.sh
# Follow any request from action to decision by request_id curl "$AXIOM_API_BASE/v1/audit/requests/req_3f29a1c4" \ # → the trace: what was checked, the decision, the reason, # and payment provider/bank dispatch visibility. No secrets are included.

Endpoints

The surfaces available today. Stripe-first payment-control workflows. The base URL is issued during onboarding, so examples keep it abstract.

POST/v1/paymentsSend a payment to be checked before execution
GET/v1/audit/requests/{request_id}Look up the audit trail for a request
GET/v1/agentsList delegated agents and their granted policy
What this is, and is not.  Axiom checks payment requests before execution and records the audit trail. Accepted means the request passed policy and was handed to the payment provider/bank; it does not mean the payment is settled or final. Evidence shows what Axiom checked, what it decided, and what happened next where available.