MandateShield Account execution control API

Hosting-authenticated account-owner emergency control. The interlock governs new MandateShield-mediated strict operations inside one account regardless of provider profile. It cannot stop customer infrastructure that bypasses MandateShield or recall a step that committed before PAUSE.

Operations 2

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /api/account/execution-interlock Check whether account-wide execution is paused · Read the account-wide MandateShield execution interlock #
Ask an LLM
“Is new payment execution on my MandateShield account currently paused or running?”
“What does the execution interlock report if its control state is missing or corrupt?”
Tell an agent
Show me the current account-wide execution interlock state.
Check whether my account's execution kill switch is set to PAUSED right now.
POST /api/account/execution-interlock Pause or resume all new account execution · Atomically PAUSE or RESUME new account-wide execution #
Ask an LLM
“How do I pause all new agent payment execution across my whole account at once?”
“Can I resume execution after a pause without a stale request overriding a newer pause?”
Tell an agent
{action} account-wide execution using interlock generation {expected_generation}.
Pause all new execution on my account now; the current interlock generation is {expected_generation}.

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mandateshield-com:mandateshield-com-account-execution-control-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mandateshield-com-account-execution-control-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: MandateShield Payment Authority Account execution control…
  version: 3.4.0
  description: Fail-closed authority verification, provider-bound execution permits and provider-outcome reconciliation that is caller-report-independent for autonomous AI-agent purchases.
  termsOfService: https://mandateshield.com/terms
  contact:
    name: Gökhan Vodinali · MandateShield operator
    url: https://mandateshield.com/legal
    email: support@hemelion.com
servers:
- url: https://mandateshield.com
tags:
- name: Account execution control
  description: Hosting-authenticated account-owner emergency control. The interlock governs new MandateShield-mediated strict operations inside one account regardless of provider profile. It cannot stop customer infrastructure that bypasses MandateShield or recall a step that committed before PAUSE.
  externalDocs:
    url: https://mandateshield.com/specifications/global-execution-interlock/v1
paths:
  /api/account/execution-interlock:
    get:
      operationId: getGlobalExecutionInterlock
      tags:
      - Account execution control
      summary: Read the account-wide MandateShield execution interlock
      description: Requires the hosting-authenticated account-owner session. Missing or corrupt control state is returned as PAUSED with integrity=FAIL_CLOSED; it never silently means RUNNING.
      security:
      - hostingSession: []
      responses:
        '200':
          description: Current effective interlock state
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                required:
                - interlock
                properties:
                  interlock:
                    $ref: '#/components/schemas/ExecutionInterlockStatus'
        '401':
          description: A hosting-authenticated account-owner session is required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: setGlobalExecutionInterlock
      tags:
      - Account execution control
      summary: Atomically PAUSE or RESUME new account-wide execution
      description: Requires a trusted same-origin request and the hosting-authenticated account-owner session. PAUSE remains available without current legal acceptance. RESUME requires current legal acceptance. expected_generation prevents a stale RESUME from overriding a newer PAUSE. After PAUSE commits, new strict reservations, PROCESSOR CONSUME and execution-permit redemption fail closed; receipt verification, outcome reporting and reconciliation remain available.
      security:
      - hostingSession: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExecutionInterlockMutation'
            examples:
              pause:
                value:
                  action: PAUSE
                  expected_generation: 3
              resume:
                value:
                  action: RESUME
                  expected_generation: 4
      responses:
        '200':
          description: Transition committed or the requested state was already effective
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                required:
                - interlock
                properties:
                  interlock:
                    $ref: '#/components/schemas/ExecutionInterlockMutationStatus'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          description: A hosting-authenticated account-owner session is required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: The control-plane origin is not trusted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: The expected generation is stale; no transition was applied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '428':
          description: Current legal acceptance is required for RESUME
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: The state transition could not be verified; execution remains fail-closed when uncertain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  responses:
    BadRequest:
      description: Invalid JSON, shape or parameter
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    ExecutionInterlockMutationStatus:
      type: object
      additionalProperties: false
      required:
      - contract
      - state
      - execution_allowed
      - integrity
      - generation
      - last_event_id
      - changed_at
      - paused_at
      - blocked_when_paused
      - remains_available
      - scope
      - limitation
      - changed
      - already_effective
      properties:
        contract:
          type: string
          format: uri
          const: https://mandateshield.com/specifications/global-execution-interlock/v1
        state:
          type: string
          enum:
          - RUNNING
          - PAUSED
        execution_allowed:
          type: boolean
        integrity:
          type: string
          enum:
          - VERIFIED
          - FAIL_CLOSED
        generation:
          type:
          - integer
          - 'null'
          minimum: 0
        last_event_id:
          type:
          - string
          - 'null'
        changed_at:
          type:
          - string
          - 'null'
          format: date-time
        paused_at:
          type:
          - string
          - 'null'
          format: date-time
        blocked_when_paused:
          type: array
          prefixItems:
          - const: STRICT_RESERVATION
          - const: PROCESSOR_CONSUME
          - const: EXECUTION_PERMIT_REDEMPTION
          minItems: 3
          maxItems: 3
        remains_available:
          type: array
          prefixItems:
          - const: RECEIPT_VERIFICATION
          - const: OUTCOME_REPORTING
          - const: RECONCILIATION
          minItems: 3
          maxItems: 3
        scope:
          const: ACCOUNT_WIDE_MANDATESHIELD_MEDIATED
        limitation:
          type: string
        changed:
          type: boolean
        already_effective:
          type: boolean
    ExecutionInterlockMutation:
      type: object
      additionalProperties: false
      required:
      - action
      - expected_generation
      properties:
        action:
          type: string
          enum:
          - PAUSE
          - RESUME
        expected_generation:
          type: integer
          minimum: 0
    ExecutionInterlockStatus:
      type: object
      additionalProperties: false
      required:
      - contract
      - state
      - execution_allowed
      - integrity
      - generation
      - last_event_id
      - changed_at
      - paused_at
      - blocked_when_paused
      - remains_available
      - scope
      - limitation
      properties:
        contract:
          type: string
          format: uri
          const: https://mandateshield.com/specifications/global-execution-interlock/v1
        state:
          type: string
          enum:
          - RUNNING
          - PAUSED
        execution_allowed:
          type: boolean
        integrity:
          type: string
          enum:
          - VERIFIED
          - FAIL_CLOSED
        generation:
          type:
          - integer
          - 'null'
          minimum: 0
        last_event_id:
          type:
          - string
          - 'null'
        changed_at:
          type:
          - string
          - 'null'
          format: date-time
        paused_at:
          type:
          - string
          - 'null'
          format: date-time
        blocked_when_paused:
          type: array
          prefixItems:
          - const: STRICT_RESERVATION
          - const: PROCESSOR_CONSUME
          - const: EXECUTION_PERMIT_REDEMPTION
          minItems: 3
          maxItems: 3
        remains_available:
          type: array
          prefixItems:
          - const: RECEIPT_VERIFICATION
          - const: OUTCOME_REPORTING
          - const: RECONCILIATION
          minItems: 3
          maxItems: 3
        scope:
          const: ACCOUNT_WIDE_MANDATESHIELD_MEDIATED
        limitation:
          type: string
    Error:
      type: object
      required:
      - error
      properties:
        error:
          type: string
        code:
          type: string
        enforcement_authorized:
          type: boolean
  securitySchemes:
    hostingSession:
      type: apiKey
      in: header
      name: OAI-Authenticated-User-Email
      description: Hosting-injected authenticated account-owner identity. The hosting boundary validates the user session and injects this assertion; callers cannot authenticate by supplying this header directly. State-changing control-plane requests additionally require the trusted same-origin check documented by the operation.
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: ms_test_… or ms_live_…
      description: Keep API keys server-side and isolate them by purpose. VERIFY keys can issue challenges and strict decisions. Paid live PROCESSOR keys are bound to one processor_audience and can call only the execution-transition boundary.
x-mandateshield-release:
  product_version: 1.13.0
  openapi_version: 3.4.0
  standard_version: 2.4.0
  released_at: '2026-07-28T14:25:22.000Z'
  generated_at: '2026-07-28T14:25:22.000Z'
  status: current
  latest_pointer: https://mandateshield.com/current-release.json
  superseded_by: null
  canonical_versioned_documents:
    openapi: https://mandateshield.com/openapi/3.4.0.json
    llms: https://mandateshield.com/llms/1.13.0.txt
    llms_full: https://mandateshield.com/llms-full/1.13.0.txt
    discovery: https://mandateshield.com/discovery/1.13.0.json
x-provenance:
  method: harvested
  publisher: MandateShield
  source: https://mandateshield.com/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)