Skip to Content
Who can use this
Available to
DeveloperAdministrator
Not available to
Governance EngineerCompliance OfficerBusiness OwnerAuditor

SDK Quick Start — Agentic Payments & Stablecoins

Getting started: Agentic Payments & Stablecoins

Control what your AI can do. The core SDK checks policy before your workflow runs an action and again before its result is released. Denied actions stop. Actions that need human review stay paused until a signed outcome arrives.

Catalog context. As of July 2026, agentic AI is deployed across all major payment rails as an initiator, delegator, and governance certifier of transactions. Google AP2 (Agent Payments Protocol v0.2) provides a structured mandate chain (OpenPaymentMandate → PaymentMandate → PaymentReceipt) encoded as SD-JWT verifiable credentials, enabling AI agents to make payments within clearly defined constraints with full auditability. Mastercard has integrated AP2 across its $9T+ annual network volume to support agentic commerce. Coinbase x402 enables HTTP-native micropayments with 75M+ monthly transactions across Base, Polygon, Arbitrum, World Chain, Solana, and Ethereum, allowing AI agents to pay for API access and digital services in a single HTTP round-trip. Browser-commerce agents (OpenAI ChatGPT agent mode, Anthropic computer-use) bypass structured payment APIs and execute checkout flows autonomously, a governance gap that Veriproof fills with session-wrapping and mandate verification. The GENIUS Act (Pub. L. 119-27, signed July 18, 2025) established the first US federal framework for payment stablecoins, requiring 1:1 reserves in cash and T-bills and federal licensing for issuers above $10B AUM. EU MiCA (Regulation 2023/1114, full enforcement 2026) requires CASPs and stablecoin issuers to hold national competent authority authorization and appear in the ESMA Interim Register. FedNow and RTP carry ISO 20022 pacs.008 instruction reference requirements for all AI-initiated real-time payments. Veriproof captures evidence at each mandate step, validates constraints via OPA policy, anchors to Solana, and issues W3C VC Payment Mandate certificates, providing the governance certification layer that AP2 merchants, acquirers, and regulators require.

Use industry fields with the core SDK

Industry vocabularies supply typed values that the SDK sends as policy fields and evidence attributes with one governed call. Choose values that describe the actual workflow. Adding a vocabulary does not activate rules or assign regulatory requirements.

LayerWhat you configureWhat changes downstream
Core SDKApplication SDK key, endpoint, one client, and the governed action around each protected stepThe same policy checks, typed results, and evidence used across every implementation
Agentic Payments & StablecoinsTyped industry values and application facts drawn from this vertical catalogRules read them under input.snapshot.industry and input.snapshot.facts; reviewers see them in evidence
Review workflowsRules, evidence packages, and internal reviewer workflowsReviewers can inspect captured values and identify missing context

If you need the cross-industry baseline first, open the core SDK reference, Python core, or .NET core before continuing here.

Step 1 — Install the approved packages

In the customer portal, open Tools and SDKs. Select your language and adapters, then follow the installation instructions shown there.

VeriProof SDKs are distributed through customer-gated GitLab packages, not public registries. See SDK access for workstation and CI guidance.

VeriProof packages used here: @veriproof/sdk-core (TypeScript), veriproof-sdk (Python), Veriproof.Sdk.Core (.NET).

Step 2 — Configure

Store the application SDK key as VERIPROOF_API_KEY and create one client when the application starts. Publish the policy you want to enforce, then confirm its field contract against the facts and industry values your application supplies.

Copy the application ID and key from Set up SDK. The application ID is not its display name. Try a live demo  to see a governed workflow, or request an evaluation  if you need a workspace.

Step 3 — Govern the action

Put the protected business action inside govern. The SDK checks policy before it calls the action and before it releases the result. Deny and human-review decisions stop execution here.

import { Veriproof } from '@veriproof/sdk-core';
import type { GovernedResult, IndustryFact, JsonValue } from '@veriproof/sdk-core';

const veriproof = Veriproof.fromEnv();

export async function runProtectedAction<TInput extends JsonValue, TValue>(
  request: TInput,
  action: (input: TInput, signal: AbortSignal) => Promise<TValue>,
): Promise<GovernedResult<TValue, TInput>> {
  // Catalog values for this vertical. Replace them with facts from the current workflow.
  const industry: IndustryFact[] = [
    { attribute: "agentic_payments.mandate.type", policyInput: "agentic_payments_mandate_type", value: "open_payment" },
    { attribute: "agentic_payments.mandate.status", policyInput: "agentic_payments_mandate_status", value: "pending" },
    { attribute: "agentic_payments.mandate.modality", policyInput: "agentic_payments_mandate_modality", value: "human_present" },
  ];

  // Policy runs before action() and again before the result is released.
  // A deny or review decision means action() never runs.
  return veriproof.govern(
    "agentic.payments.and.stablecoins.evaluate",
    request,
    ({ input, signal }) => action(input, signal),
    { industry },
  );
}

Only completed, completed_with_warning, and transformed results carry a released value. Handle every other status with its safe message, reason code, and evidence reference. For review decisions, save the checkpoint and continue through the human review workflow.

Add typed industry values

Each core SDK ships this vertical's vocabulary as generated types. A typed value becomes one policy field and one evidence attribute when you pass it to the governed call. Use application facts for values that are specific to your workflow.

Find this workflow's vocabulary in the Agentic Payments & Stablecoins reference. Use the attribute names below and verify their policy-field mapping before using them in a rule. Sample values show the format; they are not recommended outcomes for your application.

OTel attributeSample valueCategory
agentic_payments.mandate.typeopen_paymentAP2MandateType
agentic_payments.mandate.statuspendingAP2MandateStatus
agentic_payments.mandate.modalityhuman_presentAP2TransactionModality
agentic_payments.mandate.chain_depth1AP2ChainDepth
agentic_payments.mandate.receipt_reference_presenttrueAP2ReceiptReferencePresent
agentic_payments.x402.payment_event_typepayment_requiredX402PaymentEventType

TypeScript

import { Industry } from '@veriproof/sdk-core';
import { AP2MandateType, AP2MandateTypeMeta, AP2MandateStatus, AP2MandateStatusMeta, AP2TransactionModality, AP2TransactionModalityMeta } from '@veriproof/sdk-core/industries/agentic-payments';

// Replace sample values with facts from the current workflow.
// Each value becomes one policy field and one evidence attribute.
const industry = [
  Industry.fact(AP2MandateTypeMeta, AP2MandateType.OpenPayment),
  Industry.fact(AP2MandateStatusMeta, AP2MandateStatus.Pending),
  Industry.fact(AP2TransactionModalityMeta, AP2TransactionModality.HumanPresent),
];

const result = await veriproof.govern(actionName, request, runWorkflow, { industry });

Python

from veriproof_sdk.verticals.agentic_payments import AP2MandateType, AP2MandateStatus, AP2TransactionModality

# Replace sample values with facts from the current workflow.
# Each value becomes one policy field and one evidence attribute.
industry = (
    AP2MandateType.open_payment.fact(),
    AP2MandateStatus.pending.fact(),
    AP2TransactionModality.human_present.fact(),
)

result = await vp.govern(action_name, request, run_workflow, industry=industry)

.NET

using Veriproof.Sdk.Core.Industries.AgenticPayments;

// Replace sample values with facts from the current workflow.
// Each value becomes one policy field and one evidence attribute.
var options = new GovernOptions
{
    Industry =
    [
        AP2MandateType.OpenPayment.Fact(),
        AP2MandateStatus.Pending.Fact(),
        AP2TransactionModality.HumanPresent.Fact(),
    ],
};

var result = await veriproof.GovernAsync(actionName, request, RunWorkflowAsync, options);

Next steps

Start your Developer evaluation

Verify your work email to create a Developer account, free for 60 days. Open your account, create a Development application and its API key, then follow Tools and SDKs to connect it.

Live demo → Start free for 60 days → 

Last updated on