Skip to content

Agent API reference

Generated from the OpenAPI 3.1 document at /api/v2/agent/openapi. Version 2.4.0.

Authenticate with an organization-bound API key: Authorization: Bearer <key>. Each operation states its own access requirement. Agent errors use { error: { code, message, details } } with an X-Trace-Id header.

Each API key may make 100 requests per minute to each operation (basic tier; 1,000 professional, 10,000 enterprise). Each client address may present credentials 600 times per minute. MCP: 100 tool requests per hour per API key or OAuth user (basic tier; 1,000 professional, 10,000 enterprise).

Download OpenAPI JSON

meta

GET /api/v2/agent

List agent endpoints

Available

Authentication:
Organization-bound API key
Requires:
projects:read
Idempotency-Key:
none

Error codes

  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE

GET /api/v2/agent/openapi

Agent API OpenAPI document

Available

Authentication:
Public discovery
Idempotency-Key:
none

deploy

POST /api/v2/agent/contracts/generate

Generate Solidity source from stablecoin spec

Available

Uses the configured model when available, otherwise a deterministic template.

Authentication:
Organization-bound API key
Requires:
projects:write
Idempotency-Key:
optional
Request body fields
FieldRequiredType
specYesobject
styleNostring

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/contracts/validate

Validate source and security controls

Available

securityScore is a heuristic from pattern checks, not the automated-checks ruleset at /api/security/analyze/v2.

Authentication:
Organization-bound API key
Requires:
projects:write
Idempotency-Key:
optional
Request body fields
FieldRequiredType
sourceYesstring
contractNameNostring
minimumSecurityScoreNonumber

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/contracts/simulate

Simulate deployment and estimate gas

Available

gasCostUsd falls back to a fixed value when no chain fee estimate is available.

Authentication:
Organization-bound API key
Requires:
projects:write
Idempotency-Key:
optional
Request body fields
FieldRequiredType
sourceYesstring
contractNameNostring
constructorArgsNoarray
deploymentTypeNostring
saltNostring
chainNostring
deployerAddressNostring

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: COMPILATION_ERROR, IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/contracts/compile

Compile Solidity source

Available

Authentication:
Organization-bound API key
Requires:
projects:write
Idempotency-Key:
optional
Request body fields
FieldRequiredType
sourceYesstring
contractNameNostring
compilerVersionNostring
optimizerRunsNointeger

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: COMPILATION_ERROR, IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/contracts/deploy

Deploy contract (unavailable)

Unavailable

Validates the request, then answers 503 DEPLOYMENT_RUNTIME_UNAVAILABLE. No transaction is sent.

Authentication:
Organization-bound API key
Requires:
projects:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
abiYesarray
bytecodeYesstring
constructorArgsNoarray
chainNostring
deploymentTypeNostring
deployerAddressNostring
signedTransactionNostring
useServerKeyNoboolean
sourceNostring
compilerVersionNostring
optimizerRunsNonumber
webhookUrlNostring
webhookSecretNostring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: DEPLOYMENT_RUNTIME_UNAVAILABLE, IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

GET /api/v2/agent/contracts/deploy/{deploymentId}

Poll deployment status

Available

Legacy records without a verified chain receipt answer 409 LEGACY_DEPLOYMENT_UNVERIFIED.

Authentication:
Organization-bound API key
Requires:
projects:read
Idempotency-Key:
none

Error codes

  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 404: NOT_FOUND
  • 409: LEGACY_DEPLOYMENT_UNVERIFIED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/contracts/verify

Record contract verification metadata

Available

Does not submit source to an explorer. A status of "verified" is not explorer confirmation.

Authentication:
Organization-bound API key
Requires:
projects:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
deploymentIdNostring
contractAddressYesstring
chainNostring
sourceYesstring
contractNameYesstring
constructorArgsNoarray
compilerVersionNostring
optimizerRunsNonumber

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 404: NOT_FOUND
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/contracts/launch

Run generate, validate, compile and simulate

Available

deploy: true answers 503 DEPLOYMENT_RUNTIME_UNAVAILABLE.

Authentication:
Organization-bound API key
Requires:
projects:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
specYesobject
styleNostring
constructorArgsNoarray
deploymentTypeNostring
chainNostring
deployNoboolean
minimumSecurityScoreNonumber
signedTransactionNostring
useServerKeyNoboolean
webhookUrlNostring
webhookSecretNostring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: DEPLOYMENT_RUNTIME_UNAVAILABLE, IDEMPOTENCY_UNAVAILABLE, PERSISTENCE_ERROR, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/contracts/webhooks/dispatch

Dispatch deployment webhooks

AvailableScheduler only

Authentication:
Scheduler secret
Idempotency-Key:
none

Error codes

  • 401: See the operation response
  • 500: See the operation response

discover

GET /api/v2/agent/directory/issuers

List stablecoin issuers and assets

Available

Authentication:
Organization-bound API key
Requires:
analytics:read
Idempotency-Key:
none

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE, SOURCE_NOT_AVAILABLE

GET /api/v2/agent/directory/issuers/{id}

Get one issuer or asset

Available

Authentication:
Organization-bound API key
Requires:
analytics:read
Idempotency-Key:
none

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 404: NOT_FOUND
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE, SOURCE_NOT_AVAILABLE

GET /api/v2/agent/directory/protocols

List stablecoin-adjacent protocols

Available

Authentication:
Organization-bound API key
Requires:
analytics:read
Idempotency-Key:
none

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE, SOURCE_NOT_AVAILABLE

GET /api/v2/agent/directory/corridors

List corridors with reviewed eligibility

Available

Authentication:
Organization-bound API key
Requires:
analytics:read
Idempotency-Key:
none

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE, SOURCE_NOT_AVAILABLE

GET /api/v2/agent/directory/compare

Compare stablecoins side by side

Available

Authentication:
Organization-bound API key
Requires:
analytics:read
Idempotency-Key:
none

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE, SOURCE_NOT_AVAILABLE

GET /api/v2/agent/directory/analytics

Market aggregates from the snapshot

Available

Authentication:
Organization-bound API key
Requires:
analytics:read
Idempotency-Key:
none

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE, SOURCE_NOT_AVAILABLE

GET /api/v2/agent/providers/registry

List the runtime adapter registry

Available

Authentication:
Organization-bound API key
Requires:
providers:read
Idempotency-Key:
none

Error codes

  • 400: INVALID_INPUT, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 404: NOT_FOUND
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE

GET /api/v2/agent/providers/eligible

Find runtime adapters for a category

Available

Authentication:
Organization-bound API key
Requires:
providers:read
Idempotency-Key:
none

Error codes

  • 400: INVALID_INPUT, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 404: NOT_FOUND
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE

comply

GET /api/compliance/workspace

Get compliance workspace

Available

Authentication:
Organization-bound API key
Requires:
compliance:read
Idempotency-Key:
none

Error codes

  • 400: INVALID_INPUT, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 404: NOT_FOUND
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE

GET /api/compliance/workspace/jurisdictions

Explore compliance jurisdictions

Available

Authentication:
Organization-bound API key
Requires:
compliance:read
Idempotency-Key:
none

Error codes

  • 400: INVALID_INPUT, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 404: NOT_FOUND
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE

GET /api/compliance/workspace/licenses

Read compliance license records

Available

Authentication:
Organization-bound API key
Requires:
compliance:read
Idempotency-Key:
none

Error codes

  • 400: INVALID_INPUT, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 404: NOT_FOUND
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE

GET /api/compliance/workspace/changes

Read captured regulatory changes

Available

Authentication:
Organization-bound API key
Requires:
compliance:read
Idempotency-Key:
none

Error codes

  • 400: INVALID_INPUT, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 404: NOT_FOUND
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/compliance/screen

Run compliance screening

Sandbox only: simulated

Sanctions screening defaults to the mock-sanctions simulator. Resolves through a sandbox simulator when no reviewed provider connection serves the request; simulated responses are not provider results.

Authentication:
Organization-bound API key
Requires:
compliance:write
Idempotency-Key:
optional
Request body fields
FieldRequiredType
typeYesstring
subjectYesobject
jurisdictionNoarray
organizationIdNostring
policiesNoarray

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

Aliases: /api/v2/agent/comply/screen

POST /api/v2/agent/compliance/kyc

Start a KYC verification flow

Sandbox only: simulated

Resolves through a sandbox simulator when no reviewed provider connection serves the request; simulated responses are not provider results.

Authentication:
Organization-bound API key
Requires:
compliance:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
personYesobject
levelNostring
externalReferenceNostring
redirectUrlNostring
jurisdictionNoarray
organizationIdNostring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

Aliases: /api/v2/agent/comply/kyc

POST /api/v2/agent/compliance/kyc/status

Fetch KYC verification status

Sandbox only: simulated

Resolves through a sandbox simulator when no reviewed provider connection serves the request; simulated responses are not provider results.

Authentication:
Organization-bound API key
Requires:
compliance:write
Idempotency-Key:
optional
Request body fields
FieldRequiredType
verificationIdYesstring
jurisdictionNoarray
organizationIdNostring

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

Aliases: /api/v2/agent/comply/kyc/status

POST /api/v2/agent/compliance/kyc/cancel

Cancel a KYC verification flow

Sandbox only: simulated

Resolves through a sandbox simulator when no reviewed provider connection serves the request; simulated responses are not provider results.

Authentication:
Organization-bound API key
Requires:
compliance:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
verificationIdYesstring
jurisdictionNoarray
organizationIdNostring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

Aliases: /api/v2/agent/comply/kyc/cancel

POST /api/v2/agent/compliance/precedent

Search synthetic precedent traces

Sandbox only: simulated

Sandbox keys only: production keys receive 403 SANDBOX_ONLY because no real precedent corpus exists.

Authentication:
Organization-bound API key
Requires:
compliance:write
Idempotency-Key:
optional
Request body fields
FieldRequiredType
questionYesstring
stablecoinTypeNostring
jurisdictionsNoarray
reserveAssetsNoarray
minConfidenceNonumber

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN, SANDBOX_ONLY
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: IDEMPOTENCY_UNAVAILABLE, MODEL_NOT_CONFIGURED, PRECEDENT_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

Aliases: /api/v2/agent/comply/precedent

POST /api/v2/agent/compliance/design-requirements

List design requirements per jurisdiction

Available

Authentication:
Organization-bound API key
Requires:
compliance:write
Idempotency-Key:
optional
Request body fields
FieldRequiredType
designYesobject

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/compliance/evaluate-design

Evaluate a design (deprecated version 1 shape)

Available

Deprecated on 2026-10-01; may be removed after 2027-03-31. Responses carry Deprecation, Sunset and Link headers.

Authentication:
Organization-bound API key
Requires:
compliance:write
Idempotency-Key:
optional
Request body fields
FieldRequiredType
designYesobject

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

Aliases: /api/v2/agent/comply/evaluate-design

POST /api/v2/agent/compliance/generate-sar

Generate SAR draft

Available

Authentication:
Organization-bound API key
Requires:
compliance:write
Idempotency-Key:
optional
Request body fields
FieldRequiredType
transactionsYesarray
suspectedTypologyYesstring
jurisdictionYesstring
filerInfoNoobject

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

Aliases: /api/v2/agent/comply/generate-sar

POST /api/v2/agent/compliance/reserves/validate

Validate a reserve composition

Available

Authentication:
Organization-bound API key
Requires:
compliance:read
Idempotency-Key:
optional
Request body fields
FieldRequiredType
frameworkYesstring
compositionYesarray
referenceCurrencyNostring

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

Aliases: /api/v2/agent/comply/reserves/validate

operate

POST /api/v2/agent/providers/invoke

Invoke an approved provider operation

Available

Authentication:
Organization-bound API key
Idempotency-Key:
optional
Request body fields
FieldRequiredType
providerSlugYesstring
selectionReceiptIdNostring
approvalRequestIdNostring
categoryYesstring
operationYesstring
inputNoany JSON
regimeNoobject

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, INVALID_INPUT, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 404: NOT_FOUND
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR, SERVER_MISCONFIGURED
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/payments/bank-transfer

Initiate a bank transfer

Sandbox only: simulated

Resolves through a sandbox simulator when no reviewed provider connection serves the request; simulated responses are not provider results.

Authentication:
Organization-bound API key
Requires:
payments:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
amountYesstring
currencyYesstring
sourceYesobject
destinationYesobject
railNostring
purposeCodeNostring
referenceNostring
jurisdictionNoarray
operatorJurisdictionNostring
senderJurisdictionYesstring
receiverJurisdictionYesstring
organizationIdNostring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE, STORAGE_UNAVAILABLE

POST /api/v2/agent/payments/bank-transfer/status

Fetch bank transfer status

Sandbox only: simulated

Resolves through a sandbox simulator when no reviewed provider connection serves the request; simulated responses are not provider results.

Authentication:
Organization-bound API key
Requires:
payments:write
Idempotency-Key:
optional
Request body fields
FieldRequiredType
transferIdYesstring
jurisdictionNoarray
operatorJurisdictionNostring
senderJurisdictionYesstring
receiverJurisdictionYesstring
organizationIdNostring

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/payments/bank-transfer/cancel

Cancel a bank transfer

Sandbox only: simulated

Resolves through a sandbox simulator when no reviewed provider connection serves the request; simulated responses are not provider results.

Authentication:
Organization-bound API key
Requires:
payments:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
transferIdYesstring
jurisdictionNoarray
operatorJurisdictionNostring
senderJurisdictionYesstring
receiverJurisdictionYesstring
organizationIdNostring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE, STORAGE_UNAVAILABLE

POST /api/v2/agent/custody/wallets

Create a custody wallet

Sandbox only: simulated

Custody fails closed with 424 when no reviewed provider connection serves the request. A simulator runs only when explicitly connected. A custody write requires an approved provider-operation approval.

Authentication:
Organization-bound API key
Requires:
wallets:write
Idempotency-Key:
required

Request body: Required.

Match at least one request shape.

custody_wallet_create: Request shape 1
FieldRequiredType
labelYesstring
chainYesstring
typeYesstring
policyNoany JSON
jurisdictionNoarray
operatorJurisdictionNostring
organizationIdNostring
custody_wallet_create: Request shape 2
FieldRequiredType
custodyWalletIdYesstring
approvalRequestIdYesstring
organizationIdNostring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: CUSTODY_STATE_CONFLICT, IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 424: PROVIDER_NOT_CONNECTED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE, SOURCE_NOT_AVAILABLE

POST /api/v2/agent/custody/wallets/balance

Fetch custody wallet balances

Sandbox only: simulated

Custody fails closed with 424 when no reviewed provider connection serves the request. A simulator runs only when explicitly connected. A custody write requires an approved provider-operation approval.

Authentication:
Organization-bound API key
Requires:
wallets:write
Idempotency-Key:
optional
Request body fields
FieldRequiredType
walletIdYesstring
assetNostring
jurisdictionNoarray
operatorJurisdictionNostring
organizationIdNostring

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/custody/transfers

Initiate a custody transfer

Sandbox only: simulated

Custody fails closed with 424 when no reviewed provider connection serves the request. A simulator runs only when explicitly connected. A custody write requires an approved provider-operation approval.

Authentication:
Organization-bound API key
Requires:
wallets:write
Idempotency-Key:
required

Request body: Required.

Match at least one request shape.

custody_transfer_initiate: Request shape 1
FieldRequiredType
walletIdYesstring
destinationYesstring
assetYesstring
amountMinorYesstring
amountNoany JSON
noteNostring
jurisdictionNoarray
operatorJurisdictionNostring
senderJurisdictionNostring
receiverJurisdictionNostring
organizationIdNostring
custody_transfer_initiate: Request shape 2
FieldRequiredType
custodyTransferIdYesstring
approvalRequestIdYesstring
organizationIdNostring
custody_transfer_initiate: Request shape 3
FieldRequiredType
custodyTransferIdYesstring
expectedVersionYesinteger
organizationIdNostring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: CUSTODY_STATE_CONFLICT, IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 424: PROVIDER_NOT_CONNECTED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE, SOURCE_NOT_AVAILABLE

POST /api/v2/agent/custody/transfers/status

Fetch custody transfer status

Sandbox only: simulated

Custody fails closed with 424 when no reviewed provider connection serves the request. A simulator runs only when explicitly connected. A custody write requires an approved provider-operation approval.

Authentication:
Organization-bound API key
Requires:
wallets:read
Idempotency-Key:
optional

Request body: Required.

Match at least one request shape.

custody_transfer_status: Request shape 1
FieldRequiredType
custodyTransferIdYesstring
organizationIdNostring
custody_transfer_status: Request shape 2
FieldRequiredType
transferIdYesstring
jurisdictionNoarray
operatorJurisdictionNostring
organizationIdNostring

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: CUSTODY_STATE_CONFLICT, IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE, SOURCE_NOT_AVAILABLE

POST /api/v2/agent/payments/corridor/simulate

Simulate a corridor flow

Sandbox only: simulated

A rehearsal surface: steps without a reviewed provider connection use simulators or local fallbacks.

Authentication:
Organization-bound API key
Requires:
payments:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
personYesobject
sourceYesobject
destinationYesobject
amountYesstring
currencyYesstring
custodyYesobject
destinationAddressNostring
railNostring
referenceNostring
jurisdictionNoarray
senderJurisdictionYesstring
receiverJurisdictionYesstring
organizationIdNostring
executionModeNostring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE, STORAGE_UNAVAILABLE

GET /api/v2/agent/payments/corridor/workflows/{workflowRunId}

Fetch corridor workflow status

Available

Authentication:
Organization-bound API key
Requires:
payments:read
Idempotency-Key:
none

Error codes

  • 400: INVALID_INPUT, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 404: NOT_FOUND
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/payments/corridor/workflows/dispatch

Dispatch queued corridor workflows

AvailableScheduler only

Authentication:
Scheduler secret
Idempotency-Key:
none

Error codes

  • 401: See the operation response
  • 500: See the operation response

POST /api/v2/agent/treasury/mint

Request an issuer mint

Sandbox only: simulated

Creates a sandbox issuance request for approval by a second person in the workspace. No transaction is prepared or sent.

Authentication:
Organization-bound API key
Requires:
wallets:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
issuerIdYesstring
amountMinorYesstring
signerAddressYesstring
reasonNostring
organizationIdNostring
toYesstring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: CHAIN_CAPABILITY_DISABLED, FORBIDDEN
  • 404: NOT_FOUND
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED, PRECHECK_FAILED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE, STORAGE_UNAVAILABLE

POST /api/v2/agent/treasury/burn

Request an issuer burn

Sandbox only: simulated

Creates a sandbox issuance request for approval by a second person in the workspace. No transaction is prepared or sent.

Authentication:
Organization-bound API key
Requires:
wallets:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
issuerIdYesstring
amountMinorYesstring
signerAddressYesstring
reasonNostring
organizationIdNostring
fromYesstring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: CHAIN_CAPABILITY_DISABLED, FORBIDDEN
  • 404: NOT_FOUND
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED, PRECHECK_FAILED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE, STORAGE_UNAVAILABLE

POST /api/v2/agent/treasury/status

Get treasury status

Available

Total supply is read on-chain. Circulating supply, reserve ratio and peg price come from a connected source; without one they are null with a reason (source_not_connected), never estimated.

Authentication:
Organization-bound API key
Requires:
wallets:write
Idempotency-Key:
optional
Request body fields
FieldRequiredType
contractAddressYesstring
chainNostring
assetNostring
organizationIdNostring

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/treasury/stress-test

Run treasury stress scenario

Available

Total supply is read on-chain. The reserve ratio is scenario.reserveRatio when supplied, otherwise the ratio a connected reserve source (token_issuance connection) reports; with neither the endpoint answers 424 RESERVE_SOURCE_NOT_CONNECTED and never estimates one. inputs.reserveRatioSource names the source, and simulated is true only when a sandbox simulator supplied the ratio. Peg price is not used.

Authentication:
Organization-bound API key
Requires:
wallets:write
Idempotency-Key:
optional
Request body fields
FieldRequiredType
contractAddressYesstring
chainNostring
assetNostring
organizationIdNostring
scenarioYesobject

Error codes

  • 400: UNSUPPORTED_CHAIN, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: CHAIN_CAPABILITY_DISABLED, FORBIDDEN
  • 409: IDEMPOTENCY_IN_PROGRESS
  • 422: IDEMPOTENCY_KEY_REUSED, PRECHECK_FAILED
  • 424: RESERVE_SOURCE_NOT_CONNECTED
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/cards/programmes

Create a card programme

Sandbox only: simulated

The card issuing simulator is the only card_issuance adapter. Responses carry simulated: true; in production without a reviewed card issuer connection the endpoint answers 424 PROVIDER_NOT_CONNECTED. Requires an organization-bound key.

Authentication:
Organization-bound API key
Requires:
cards:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
nameYesstring
networkYesstring
binSponsorYesstring
jurisdictionsYesarray
fundingAssetYesstring
fundingModelYesstring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: COMPLIANCE_BLOCKED, FORBIDDEN, PROVIDER_AUTHORIZATION_DENIED
  • 404: NOT_FOUND
  • 409: CARD_INSUFFICIENT_FUNDS, CARD_RECORD_CONFLICT, IDEMPOTENCY_IN_PROGRESS
  • 422: CARD_REQUEST_REJECTED, IDEMPOTENCY_KEY_REUSED
  • 424: PROVIDER_NOT_CONNECTED
  • 429: PROVIDER_RATE_LIMITED, RATE_LIMIT_EXCEEDED
  • 500: CARD_RECORD_WRITE_FAILED, INTERNAL_ERROR
  • 501: CARD_OPERATION_NOT_SUPPORTED
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/cards/issue

Issue a card

Sandbox only: simulated

The card issuing simulator is the only card_issuance adapter. Responses carry simulated: true; in production without a reviewed card issuer connection the endpoint answers 424 PROVIDER_NOT_CONNECTED. Requires an organization-bound key.

Authentication:
Organization-bound API key
Requires:
cards:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
programmeIdYesstring
cardholderIdNostring
cardholderNoobject
limitsNoobject

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: COMPLIANCE_BLOCKED, FORBIDDEN, PROVIDER_AUTHORIZATION_DENIED
  • 404: NOT_FOUND
  • 409: CARD_INSUFFICIENT_FUNDS, CARD_RECORD_CONFLICT, IDEMPOTENCY_IN_PROGRESS
  • 422: CARD_REQUEST_REJECTED, IDEMPOTENCY_KEY_REUSED
  • 424: PROVIDER_NOT_CONNECTED
  • 429: PROVIDER_RATE_LIMITED, RATE_LIMIT_EXCEEDED
  • 500: CARD_RECORD_WRITE_FAILED, INTERNAL_ERROR
  • 501: CARD_OPERATION_NOT_SUPPORTED
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

GET /api/v2/agent/cards/{cardId}

Get a card

Sandbox only: simulated

The card issuing simulator is the only card_issuance adapter. Responses carry simulated: true; in production without a reviewed card issuer connection the endpoint answers 424 PROVIDER_NOT_CONNECTED. Requires an organization-bound key.

Authentication:
Organization-bound API key
Requires:
cards:read
Idempotency-Key:
none

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: COMPLIANCE_BLOCKED, FORBIDDEN, PROVIDER_AUTHORIZATION_DENIED
  • 404: NOT_FOUND
  • 409: CARD_INSUFFICIENT_FUNDS, CARD_RECORD_CONFLICT
  • 422: CARD_REQUEST_REJECTED
  • 424: PROVIDER_NOT_CONNECTED
  • 429: PROVIDER_RATE_LIMITED, RATE_LIMIT_EXCEEDED
  • 500: CARD_RECORD_WRITE_FAILED, INTERNAL_ERROR
  • 501: CARD_OPERATION_NOT_SUPPORTED
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: RATE_LIMIT_UNAVAILABLE

GET /api/v2/agent/cards/{cardId}/transactions

List card transactions

Sandbox only: simulated

The card issuing simulator is the only card_issuance adapter. Responses carry simulated: true; in production without a reviewed card issuer connection the endpoint answers 424 PROVIDER_NOT_CONNECTED. Requires an organization-bound key.

Authentication:
Organization-bound API key
Requires:
cards:read
Idempotency-Key:
none

Error codes

  • 400: VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: COMPLIANCE_BLOCKED, FORBIDDEN, PROVIDER_AUTHORIZATION_DENIED
  • 404: NOT_FOUND
  • 409: CARD_INSUFFICIENT_FUNDS, CARD_RECORD_CONFLICT
  • 422: CARD_REQUEST_REJECTED
  • 424: PROVIDER_NOT_CONNECTED
  • 429: PROVIDER_RATE_LIMITED, RATE_LIMIT_EXCEEDED
  • 500: CARD_RECORD_WRITE_FAILED, INTERNAL_ERROR
  • 501: CARD_OPERATION_NOT_SUPPORTED
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/cards/{cardId}/fund

Fund a card

Sandbox only: simulated

The card issuing simulator is the only card_issuance adapter. Responses carry simulated: true; in production without a reviewed card issuer connection the endpoint answers 424 PROVIDER_NOT_CONNECTED. Requires an organization-bound key.

Authentication:
Organization-bound API key
Requires:
cards:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
amountYesstring
assetYesstring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: COMPLIANCE_BLOCKED, FORBIDDEN, PROVIDER_AUTHORIZATION_DENIED
  • 404: NOT_FOUND
  • 409: CARD_INSUFFICIENT_FUNDS, CARD_LEDGER_CONFLICT, CARD_RECORD_CONFLICT, IDEMPOTENCY_IN_PROGRESS
  • 422: CARD_REQUEST_REJECTED, IDEMPOTENCY_KEY_REUSED
  • 424: PROVIDER_NOT_CONNECTED
  • 429: PROVIDER_RATE_LIMITED, RATE_LIMIT_EXCEEDED
  • 500: CARD_LEDGER_WRITE_FAILED, CARD_RECORD_WRITE_FAILED, INTERNAL_ERROR
  • 501: CARD_OPERATION_NOT_SUPPORTED
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/cards/{cardId}/freeze

Freeze a card

Sandbox only: simulated

The card issuing simulator is the only card_issuance adapter. Responses carry simulated: true; in production without a reviewed card issuer connection the endpoint answers 424 PROVIDER_NOT_CONNECTED. Requires an organization-bound key.

Authentication:
Organization-bound API key
Requires:
cards:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
reasonNostring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: COMPLIANCE_BLOCKED, FORBIDDEN, PROVIDER_AUTHORIZATION_DENIED
  • 404: NOT_FOUND
  • 409: CARD_INSUFFICIENT_FUNDS, CARD_RECORD_CONFLICT, IDEMPOTENCY_IN_PROGRESS
  • 422: CARD_REQUEST_REJECTED, IDEMPOTENCY_KEY_REUSED
  • 424: PROVIDER_NOT_CONNECTED
  • 429: PROVIDER_RATE_LIMITED, RATE_LIMIT_EXCEEDED
  • 500: CARD_RECORD_WRITE_FAILED, INTERNAL_ERROR
  • 501: CARD_OPERATION_NOT_SUPPORTED
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/cards/{cardId}/unfreeze

Unfreeze a card

Sandbox only: simulated

The card issuing simulator is the only card_issuance adapter. Responses carry simulated: true; in production without a reviewed card issuer connection the endpoint answers 424 PROVIDER_NOT_CONNECTED. Requires an organization-bound key.

Authentication:
Organization-bound API key
Requires:
cards:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
reasonNostring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: COMPLIANCE_BLOCKED, FORBIDDEN, PROVIDER_AUTHORIZATION_DENIED
  • 404: NOT_FOUND
  • 409: CARD_INSUFFICIENT_FUNDS, CARD_RECORD_CONFLICT, IDEMPOTENCY_IN_PROGRESS
  • 422: CARD_REQUEST_REJECTED, IDEMPOTENCY_KEY_REUSED
  • 424: PROVIDER_NOT_CONNECTED
  • 429: PROVIDER_RATE_LIMITED, RATE_LIMIT_EXCEEDED
  • 500: CARD_RECORD_WRITE_FAILED, INTERNAL_ERROR
  • 501: CARD_OPERATION_NOT_SUPPORTED
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/cards/{cardId}/deactivate

Deactivate a card

Sandbox only: simulated

The card issuing simulator is the only card_issuance adapter. Responses carry simulated: true; in production without a reviewed card issuer connection the endpoint answers 424 PROVIDER_NOT_CONNECTED. Requires an organization-bound key.

Authentication:
Organization-bound API key
Requires:
cards:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
reasonNostring

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: COMPLIANCE_BLOCKED, FORBIDDEN, PROVIDER_AUTHORIZATION_DENIED
  • 404: NOT_FOUND
  • 409: CARD_INSUFFICIENT_FUNDS, CARD_RECORD_CONFLICT, IDEMPOTENCY_IN_PROGRESS
  • 422: CARD_REQUEST_REJECTED, IDEMPOTENCY_KEY_REUSED
  • 424: PROVIDER_NOT_CONNECTED
  • 429: PROVIDER_RATE_LIMITED, RATE_LIMIT_EXCEEDED
  • 500: CARD_RECORD_WRITE_FAILED, INTERNAL_ERROR
  • 501: CARD_OPERATION_NOT_SUPPORTED
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/cards/{cardId}/limits

Set card limits

Sandbox only: simulated

The card issuing simulator is the only card_issuance adapter. Responses carry simulated: true; in production without a reviewed card issuer connection the endpoint answers 424 PROVIDER_NOT_CONNECTED. Requires an organization-bound key.

Authentication:
Organization-bound API key
Requires:
cards:write
Idempotency-Key:
required
Request body fields
FieldRequiredType
limitsYesobject

Error codes

  • 400: IDEMPOTENCY_KEY_REQUIRED, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: COMPLIANCE_BLOCKED, FORBIDDEN, PROVIDER_AUTHORIZATION_DENIED
  • 404: NOT_FOUND
  • 409: CARD_INSUFFICIENT_FUNDS, CARD_RECORD_CONFLICT, IDEMPOTENCY_IN_PROGRESS
  • 422: CARD_REQUEST_REJECTED, IDEMPOTENCY_KEY_REUSED
  • 424: PROVIDER_NOT_CONNECTED
  • 429: PROVIDER_RATE_LIMITED, RATE_LIMIT_EXCEEDED
  • 500: CARD_RECORD_WRITE_FAILED, INTERNAL_ERROR
  • 501: CARD_OPERATION_NOT_SUPPORTED
  • 502: PROVIDER_EXECUTION_FAILED
  • 503: IDEMPOTENCY_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE

auth

GET /api/organizations/{organizationId}/audit

Organization audit history

Available

Authentication:
Organization-bound API key
Requires:
analytics:read
Idempotency-Key:
none

Error codes

  • 400: INVALID_INPUT, VALIDATION_ERROR
  • 401: UNAUTHORIZED
  • 403: FORBIDDEN
  • 404: NOT_FOUND
  • 429: RATE_LIMIT_EXCEEDED
  • 500: INTERNAL_ERROR
  • 503: RATE_LIMIT_UNAVAILABLE

POST /api/v2/agent/keys

Create scoped API key

Available

Authentication:
Organization operator session
Idempotency-Key:
required
Request body fields
FieldRequiredType
principalIdYesstring
expectedVersionNointeger
nameYesstring
descriptionNostring | null
environmentYesstring
scopesYesany JSON
expiresAtYesstring
rotationParentIdNostring
rotationExpectedVersionNointeger
reasonYesstring

Error codes

  • 400: INVALID_REQUEST, IDEMPOTENCY_REQUIRED, ORGANIZATION_REQUIRED
  • 401: UNAUTHENTICATED, SESSION_REAUTHENTICATION_REQUIRED
  • 403: ORGANIZATION_ACCESS_DENIED, SSO_REQUIRED, STEP_UP_REQUIRED
  • 409: INVALID_REQUEST, ORGANIZATION_ACCESS_DENIED, APPROVAL_REQUIRED, IDEMPOTENCY_CONFLICT, POLICY_CHANGED
  • 412: VERSION_CONFLICT
  • 413: INVALID_REQUEST
  • 428: VERSION_REQUIRED
  • 429: INVALID_REQUEST
  • 503: AUTHORIZATION_UNAVAILABLE, ORGANIZATION_SCHEMA_REQUIRED, ORGANIZATION_UNAVAILABLE