{
  "schema_version": "1.0.0",
  "updated_at": "2026-08-26T20:22:00Z",
  "states": [
    "live",
    "local sandbox",
    "gated",
    "maintenance",
    "unavailable"
  ],
  "services": [
    {
      "id": "partner-api-catalog",
      "name": "Partner API catalog",
      "category": "developer",
      "description": "A curated contract containing only reviewed partner-facing operations.",
      "state": "gated",
      "environment": "public",
      "audience": "public",
      "surface": "/developers/api/",
      "evidence_level": "locally tested",
      "evidence": "The filtered OpenAPI and Postman artifacts are generated and tested locally.",
      "next_gate": "Publish the exact generated artifacts and verify the hosted release.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "sdk-packages",
      "name": "Node and Python SDKs",
      "category": "developer",
      "description": "Typed client source for the reviewed partner contract.",
      "state": "gated",
      "environment": "local sandbox",
      "audience": "public",
      "surface": "SDK source and setup guides",
      "evidence_level": "locally tested",
      "evidence": "Node and Python client sources and CI jobs exist in the repository.",
      "next_gate": "Prove package-registry ownership, publish signed versions, and freeze the supported contract.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "recipient-records",
      "name": "Recipient records",
      "category": "recipients",
      "description": "Tenant-scoped recipient reads and lifecycle management for local integration work.",
      "state": "local sandbox",
      "environment": "local sandbox",
      "audience": "authenticated partner",
      "surface": "GET, PUT, and DELETE /v1/recipients",
      "evidence_level": "locally tested",
      "evidence": "Authenticated tenant-scoped recipient routes and tests are present.",
      "next_gate": "Complete provider-backed beneficiary validation and prove hosted tenant isolation.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "recipient-creation",
      "name": "Recipient creation",
      "category": "recipients",
      "description": "Create a tenant-owned beneficiary record for a supported payout method.",
      "state": "gated",
      "environment": "local sandbox",
      "audience": "authenticated partner",
      "surface": "Not included in the partner artifact",
      "evidence_level": "documented",
      "evidence": "Recipient creation is intentionally excluded from the reviewed partner contract while its tenant-safe request design is finalized.",
      "next_gate": "Remove the redundant organization field from the creation request and regenerate the reviewed partner contract.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "kyb-kyc-orchestration",
      "name": "KYC and KYB orchestration",
      "category": "identity",
      "description": "Identity and business-verification workflow boundaries for recipients and partners.",
      "state": "gated",
      "environment": "remote sandbox",
      "audience": "authenticated partner",
      "surface": "Not included in the partner artifact",
      "evidence_level": "documented",
      "evidence": "Signed provider boundaries and local verification states exist, but production activation and complete evidence reconciliation are unproven.",
      "next_gate": "Contract the provider, approve the program, and prove ongoing requirements and RFI operations.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "quote-estimates",
      "name": "Quote estimates",
      "category": "quotes",
      "description": "Synthetic fee, rate, and recipient-amount estimates with a bounded quote lifetime.",
      "state": "local sandbox",
      "environment": "local sandbox",
      "audience": "authenticated partner",
      "surface": "POST /v2/estimate",
      "evidence_level": "locally tested",
      "evidence": "Fresh-rate validation and exact 30-second quote evidence are covered locally.",
      "next_gate": "Bind every quoted fee and FX leg to an executable licensed provider and live corridor.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "payment-method-discovery",
      "name": "Payment-method discovery",
      "category": "payins",
      "description": "Machine-readable input-adapter posture for local integration planning.",
      "state": "local sandbox",
      "environment": "local sandbox",
      "audience": "authenticated partner",
      "surface": "GET /v2/payment-methods",
      "evidence_level": "locally tested",
      "evidence": "The endpoint reports configured adapter capabilities without asserting provider readiness.",
      "next_gate": "Add provider-authority, funding-finality, return, and hosted-readiness evidence per method.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "ach-card-wire-collection",
      "name": "ACH, card, and wire collection",
      "category": "payins",
      "description": "Provider adapter boundaries for collecting a settlement input.",
      "state": "gated",
      "environment": "remote sandbox",
      "audience": "authenticated partner",
      "surface": "Adapter boundary only",
      "evidence_level": "locally tested",
      "evidence": "Provider-call adapters exist, but an admitted end-to-end remote settlement cannot be formed.",
      "next_gate": "Prove acquiring or bank authority, collection finality, returns, reconciliation, and one admitted corridor.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "settlement-simulation",
      "name": "Settlement simulation",
      "category": "payouts",
      "description": "A deterministic no-value settlement state machine for local development.",
      "state": "local sandbox",
      "environment": "local sandbox",
      "audience": "authenticated partner",
      "surface": "POST /v2/settle",
      "evidence_level": "locally tested",
      "evidence": "The route is admitted only in the local sandbox and fails closed remotely.",
      "next_gate": "Complete durable pre-collection, licensed payout execution, liquidity, reconciliation, and production release gates.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "settlement-reads",
      "name": "Settlement reads",
      "category": "payouts",
      "description": "Poll and inspect the state of a tenant-owned local-sandbox settlement.",
      "state": "local sandbox",
      "environment": "local sandbox",
      "audience": "authenticated partner",
      "surface": "GET /v2/settle/{settlement_id} and Caribbean settlement reads",
      "evidence_level": "locally tested",
      "evidence": "Tenant-scoped read routes and state rendering are tested locally.",
      "next_gate": "Prove hosted object ownership, provider references, local-rail finality, and reconciliation states.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "caribbean-corridor-metadata",
      "name": "Caribbean corridor metadata",
      "category": "payouts",
      "description": "Local configuration describing modeled countries, currencies, fees, and rails.",
      "state": "local sandbox",
      "environment": "local sandbox",
      "audience": "authenticated partner",
      "surface": "GET /v1/caribbean/corridors",
      "evidence_level": "locally tested",
      "evidence": "The route returns modeled corridor configuration; it does not prove current local-rail availability.",
      "next_gate": "Replace static configuration with provider-authoritative eligibility, requirements, limits, cutoffs, holidays, price, ETA, and health.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "jmd-local-payout",
      "name": "JMD local payout",
      "category": "payouts",
      "description": "Credit JMD to a verified Jamaican beneficiary through an authorized local rail.",
      "state": "unavailable",
      "environment": "production",
      "audience": "authenticated partner",
      "surface": "No supported executable partner path",
      "evidence_level": "documented",
      "evidence": "Output-rail implementations are simulations and reject remote use.",
      "next_gate": "Contract an authorized Jamaica partner, fund liquidity, complete rail certification, and prove payout plus reconciliation.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "partner-balances",
      "name": "Partner balances",
      "category": "balances",
      "description": "Partner-facing available, pending, reserved, and blocked balances.",
      "state": "unavailable",
      "environment": "production",
      "audience": "authenticated partner",
      "surface": "No supported financial-balance API",
      "evidence_level": "documented",
      "evidence": "Current treasury views are internal local simulation and the ledger is an operational projection, not an audited financial book.",
      "next_gate": "Implement the canonical double-entry subledger, safeguarding model, provider balance feeds, and daily reconciliation.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "compliance-evidence",
      "name": "Compliance evidence",
      "category": "compliance",
      "description": "Fail-closed sanctions, issuer-address-list, AML, and risk evidence for local simulations.",
      "state": "local sandbox",
      "environment": "local sandbox",
      "audience": "authenticated partner",
      "surface": "Embedded settlement control",
      "evidence_level": "locally tested",
      "evidence": "Deterministic evidence and fail-closed remote screening behavior are tested locally.",
      "next_gate": "Approve versioned policies, complete ownership coverage, productize RFIs and filings, and independently test the program.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "evidence-certificates",
      "name": "Evidence certificates",
      "category": "evidence",
      "description": "Deterministic per-settlement evidence artifacts for local simulations.",
      "state": "local sandbox",
      "environment": "local sandbox",
      "audience": "authenticated partner",
      "surface": "Caribbean certificate read and verify routes",
      "evidence_level": "locally tested",
      "evidence": "Deterministic PDF and private-replica checks are covered locally; local artifacts are unanchored.",
      "next_gate": "Deploy a reviewed anchor, publish minimum-data verification, and obtain independent assurance of the evidence process.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "public-certificate-verification",
      "name": "Public certificate verification",
      "category": "evidence",
      "description": "Check a digest against reviewed published settlement evidence without revealing private transaction data.",
      "state": "gated",
      "environment": "public",
      "audience": "public",
      "surface": "No reviewed website proxy",
      "evidence_level": "documented",
      "evidence": "A backend verification boundary exists, but the public site has no reviewed minimum-data same-origin contract.",
      "next_gate": "Specify, secure, and test a digest-only public proxy and publish a reviewed anchor.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "webhook-subscriptions",
      "name": "Webhook subscriptions",
      "category": "events",
      "description": "Tenant-scoped endpoints for settlement and system event delivery.",
      "state": "gated",
      "environment": "remote sandbox",
      "audience": "authenticated partner",
      "surface": "Webhook reads and lifecycle operations; creation excluded",
      "evidence_level": "locally tested",
      "evidence": "Signed delivery and lifecycle reads are locally tested; subscription creation is intentionally excluded from the reviewed partner contract.",
      "next_gate": "Publish the tenant-safe creation contract and prove the hosted delivery lifecycle.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "webhook-delivery-history",
      "name": "Webhook delivery history",
      "category": "events",
      "description": "Inspect tenant-scoped webhook attempts and delivery outcomes.",
      "state": "local sandbox",
      "environment": "local sandbox",
      "audience": "authenticated partner",
      "surface": "GET /v1/webhooks/{webhook_id}/deliveries",
      "evidence_level": "locally tested",
      "evidence": "The authenticated tenant-scoped delivery-history route exists and is covered locally.",
      "next_gate": "Approve the retention policy and prove the redacted response contract in a hosted environment.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "usage-reporting",
      "name": "Usage reporting",
      "category": "reports",
      "description": "Traceable partner usage and transaction-level commercial records.",
      "state": "gated",
      "environment": "local sandbox",
      "audience": "authenticated partner",
      "surface": "Not included in the partner artifact",
      "evidence_level": "locally tested",
      "evidence": "Usage snapshots and draft-invoice records exist locally, but delivery, pricing authority, and hosted proof are incomplete.",
      "next_gate": "Approve pricing, bind usage to booked transactions, add adjustments and credit notes, and prove hosted access controls.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "three-way-reconciliation",
      "name": "Three-way reconciliation",
      "category": "reconciliation",
      "description": "Match the YembiPay subledger, custodian or chain, and bank or local rail with an owned break queue.",
      "state": "unavailable",
      "environment": "production",
      "audience": "authenticated partner",
      "surface": "No supported partner reconciliation product",
      "evidence_level": "documented",
      "evidence": "Operational evidence schemas exist, but live observer feeds, financial books, and provider-bound reconciliation are unproven.",
      "next_gate": "Implement the double-entry subledger, provider feeds, daily close, exception ownership, and independent accuracy proof.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "returns-refunds-disputes",
      "name": "Returns, refunds, and disputes",
      "category": "exceptions",
      "description": "Partner-visible exception lifecycles with ownership, finality, evidence, and financial treatment.",
      "state": "unavailable",
      "environment": "production",
      "audience": "authenticated partner",
      "surface": "No supported partner exception workflow",
      "evidence_level": "documented",
      "evidence": "Individual adapter events exist, but no complete product lifecycle or governed case queue is available.",
      "next_gate": "Build canonical states, cases, reserves, ledger postings, reconciliation, communications, and appeal/escalation rules.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "batch-payables",
      "name": "Batch and payables",
      "category": "batch",
      "description": "Invoice, bill, or batch settlement orchestration for partner workflows.",
      "state": "unavailable",
      "environment": "production",
      "audience": "authenticated partner",
      "surface": "Retired or non-executable partner paths",
      "evidence_level": "documented",
      "evidence": "Legacy direct-transfer and batch write routes are retired; no admitted payables workflow exists.",
      "next_gate": "Validate anchor demand after one live corridor, then design an idempotent approval and exception model.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "base-settlement-execution",
      "name": "Base settlement execution",
      "category": "onchain",
      "description": "Submit a screened settlement to a reviewed YembiPay contract on Base.",
      "state": "gated",
      "environment": "production",
      "audience": "authenticated partner",
      "surface": "No admitted remote execution path",
      "evidence_level": "locally tested",
      "evidence": "Smart-contract controls and local tests exist; deployment identities and remote admission are empty by construction.",
      "next_gate": "Complete custody and token design, deploy and verify contracts, bind owner/oracle configuration, and pass the real-money release gates.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "published-certificate-anchor",
      "name": "Published certificate anchor",
      "category": "onchain",
      "description": "Publish a reviewed evidence digest with a verifiable chain reference.",
      "state": "unavailable",
      "environment": "production",
      "audience": "public",
      "surface": "Local artifacts are explicitly unanchored",
      "evidence_level": "documented",
      "evidence": "Anchoring code is gated and local certificates do not claim a public anchor.",
      "next_gate": "Deploy the reviewed anchor contract, publish identities, prove ownership and finality, and expose minimum-data verification.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    },
    {
      "id": "production-certification",
      "name": "Production certification",
      "category": "developer",
      "description": "Evidence-based partner approval across authority, compliance, funds, books, security, resilience, integration, and support.",
      "state": "unavailable",
      "environment": "production",
      "audience": "authenticated partner",
      "surface": "/developers/production/ provides guidance only",
      "evidence_level": "documented",
      "evidence": "The readiness dimensions are specified, but no named approval workflow or production corridor authority exists.",
      "next_gate": "Assign approval owners, define required evidence, complete partner contracts, and certify one end-to-end corridor.",
      "reviewed_at": "2026-08-26T20:22:00Z"
    }
  ]
}
