API v1.0 — ExecutionProof® Standard

API Documentation

Integrate cryptographic treasury verification into any application. Full governance pipeline, every operation.

Quick Start

1

Create an Account

Sign up for free at treasuryproof.com/signup to get your API key.

2

Get Your API Key

Navigate to your dashboard to find your unique API key.

3

Make Your First Call

Send a POST request to /api/payments with your treasury operation details.

4

Receive Your EVR

Every successful operation returns a cryptographic Execution Verification Record.

Authentication

All authenticated API requests require a Bearer token. Obtain your API key from the Dashboard after signing up.

Authorization: Bearer <your-api-key>

API keys are scoped to your account and should never be exposed in client-side code. Use server-side requests only.

Code Examples

curl -X POST https://treasuryproof.com/api/payments \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 250000.00,
    "currency": "USD",
    "method": "disbursement",
    "paymentType": "allocation",
    "recipientName": "Acme Holdings LLC"
  }'

API Endpoints

POST/api/paymentsRequires Auth

Create a new verified treasury operation and generate EVR

Parameters
NameTypeRequiredDescription
amountnumberYesOperation amount in the specified currency
currencystringNoISO 4217 currency code (default: USD)
methodstringYesFund flow type: disbursement, allocation, transfer, reserve, reconcile
paymentTypestringYesOperation type: disbursement, allocation, reconciliation, reserve, intercompany
recipientNamestringNoRecipient display name
recipientEmailstringNoRecipient email address
descriptionstringNoOperation description or reference
Request Body
{
  "amount": 250.00,
  "currency": "USD",
  "method": "stripe",
  "paymentType": "invoice",
  "recipientName": "Acme Corp",
  "recipientEmail": "[email protected]",
  "description": "Invoice #1234"
}
Response
{
  "payment": {
    "id": "clx...",
    "amount": 250.00,
    "currency": "USD",
    "method": "stripe",
    "status": "verified"
  },
  "evr": {
    "verificationHash": "a1b2c3d4e5f6...",
    "cryptographicProof": "e5f6a7b8c9d0...",
    "witnessTimestamp": "2026-06-12T15:30:00.000Z",
    "status": "active",
    "standard": "ExecutionProof v1.4.1"
  }
}
GET/api/paymentsRequires Auth

List all treasury operations with filtering and pagination

Parameters
NameTypeRequiredDescription
pagenumberNoPage number (default: 1)
limitnumberNoResults per page (default: 20, max: 100)
statusstringNoFilter by status: pending, verified, failed
methodstringNoFilter by fund flow type
searchstringNoSearch by recipient name, email, or description
Response
{
  "payments": [...],
  "total": 42,
  "page": 1,
  "limit": 20,
  "pages": 3
}
GET/api/payments/:idRequires Auth

Get operation details with full EVR and transaction history

Parameters
NameTypeRequiredDescription
idstringYesOperation ID (path parameter)
Response
{
  "payment": {
    "id": "clx...",
    "amount": 250.00,
    "status": "verified",
    "evr": {
      "verificationHash": "a1b2c3d4...",
      "cryptographicProof": "e5f6a7b8...",
      "witnessTimestamp": "2026-06-12T...",
      "evidencePayload": { ... }
    },
    "transactions": [{ ... }]
  }
}
POST/api/demo/verifyPublic

Run a treasury verification without authentication (sandbox)

Parameters
NameTypeRequiredDescription
amountnumberYesOperation amount for verification
methodstringYesFund flow type to simulate
paymentTypestringYesOperation type to simulate
Request Body
{
  "amount": 100,
  "method": "stripe",
  "paymentType": "p2p"
}
Response
{
  "success": true,
  "paymentId": "demo_...",
  "evr": {
    "verificationHash": "...",
    "cryptographicProof": "...",
    "witnessTimestamp": "..."
  },
  "steps": [
    { "name": "Authority", "status": "passed" },
    { "name": "Policy", "status": "passed" },
    ...
  ]
}

EVR Format Specification

The Execution Verification Record (EVR) is a JSON-LD document conforming to the RF-100:FINANCE standard. Each EVR contains the complete cryptographic proof chain, witness timestamps, and governance metadata.

{
  "@context": "https://executionproof.io/evr/v1",
  "@type": "ExecutionVerificationRecord",
  "version": "1.0",
  "standard": "RF-100:FINANCE v1.0",
  "paymentId": "clx1234abcd",
  "amount": 250.00,
  "currency": "USD",
  "method": "stripe",
  "paymentType": "invoice",
  "recipient": {
    "name": "Acme Corporation",
    "email": "[email protected]"
  },
  "verification": {
    "hash": "a1b2c3d4e5f6...",
    "algorithm": "SHA-256",
    "proof": "x7y8z9w0...",
    "proofAlgorithm": "SHA-512",
    "witnessTimestamp": "2026-06-12T15:30:00.000Z",
    "witnessChain": [
      "authority:verified:2026-06-12T15:29:58.100Z",
      "policy:compliant:2026-06-12T15:29:58.200Z",
      "state:captured:2026-06-12T15:29:58.300Z",
      "risk:acceptable:2026-06-12T15:29:58.400Z",
      "proof:generated:2026-06-12T15:29:59.000Z",
      "execution:completed:2026-06-12T15:30:00.000Z"
    ]
  },
  "governance": {
    "doctrine": "RF-000: Verification Before Execution",
    "law": "If it cannot be verified, it cannot execute",
    "authority": "Remnant Fieldworks Inc.",
    "standard": "ExecutionProof® v1.4.1"
  },
  "sealed": true,
  "immutable": true
}

Webhook Integration

Configure webhooks to receive real-time notifications when treasury operations are verified, disputes occur, or evidence is generated. Webhooks are signed with your API key for verification.

operation.verified

Fired when a treasury operation passes all six governance gates and the EVR is sealed

operation.disputed

Fired when a dispute is raised against a verified operation

evr.generated

Fired when a new EVR is generated and sealed in immutable storage

Error Codes

CodeDescription
401Unauthorized — Missing or invalid API key
400Bad Request — Missing required parameters
404Not Found — Operation ID does not exist
403Forbidden — Operation belongs to another user
429Rate Limited — Monthly verification limit exceeded
500Internal Error — Contact support with request ID