AlgoVoi Mpp API

The mpp API from AlgoVoi — 6 operation(s) for mpp.

Operations 13

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

POST /mpp/challenge Pre-fetch an MPP payment challenge · Mpp Challenge #
Ask an LLM
“Can my agent get the payment challenge before building its transaction instead of hitting the resource first?”
“Which network will an MPP challenge ask me to pay on?”
Tell an agent
Get an MPP challenge for resource {resource_id}.
Pre-fetch the payment challenge for {resource_id} on {network}.
GET /mpp/probe Probe the paid MPP resource with GET · Mpp Probe #
Ask an LLM
“What does a plain GET to the MPP probe return without payment?”
“Does the operator's discovery probe answer with a 402 challenge on GET?”
Tell an agent
GET the MPP probe to read its payment challenge.
Fetch the operator probe resource and show the WWW-Authenticate header.
PUT /mpp/probe Probe the paid MPP resource with PUT · Mpp Probe #
Ask an LLM
“Does the MPP probe accept a PUT request with a payment proof?”
“Will a PUT to the operator probe also be payment-gated?”
Tell an agent
Send a PUT to the MPP probe with my payment proof.
Test the PUT verb on the operator-level paid probe.
POST /mpp/probe Probe the paid MPP resource with POST · Mpp Probe #
Ask an LLM
“Can I POST a Payment authorization to the MPP probe and get a receipt?”
“Where does a payment to the MPP probe go, a tenant or the operator?”
Tell an agent
POST my payment proof to the MPP probe to get a receipt.
Pay the operator probe via POST and log the receipt.
DELETE /mpp/probe Probe the paid MPP resource with DELETE · Mpp Probe #
Ask an LLM
“Is the DELETE method on the MPP probe also gated by a payment challenge?”
“What happens when I call DELETE on the operator probe?”
Tell an agent destructive · confirm first
Call DELETE on the MPP probe and report the challenge.
Exercise the DELETE verb against the paid operator probe.
OPTIONS /mpp/probe Probe the paid MPP resource with OPTIONS · Mpp Probe #
Ask an LLM
“Which methods does the MPP probe allow when asked with OPTIONS?”
“Does a CORS preflight OPTIONS call to the probe succeed?”
Tell an agent
Send an OPTIONS request to the MPP probe.
Run a preflight OPTIONS against the operator probe.
HEAD /mpp/probe Probe the paid MPP resource with HEAD · Mpp Probe #
Ask an LLM
“Can I read the MPP probe's payment challenge headers with HEAD only?”
“Does HEAD on the probe return the 402 status without a body?”
Tell an agent
Send HEAD to the MPP probe and show the response headers.
Check headers only on the operator probe.
PATCH /mpp/probe Probe the paid MPP resource with PATCH · Mpp Probe #
Ask an LLM
“Does a PATCH to the MPP probe behave like the other paid methods?”
“Can my client verify payment handling on PATCH requests to the probe?”
Tell an agent
Send a PATCH request to the MPP probe.
Check PATCH handling on the operator's payment-gated probe.
GET /mpp/{resource_id} Access an MPP payment-gated resource · Mpp Resource #
Ask an LLM
“How do I unlock a resource behind an MPP payment challenge?”
“What does a payment-gated MPP resource return before I pay, a 401 challenge?”
Tell an agent
Request MPP resource {resource_id} and return its payment challenge.
Fetch paid resource {resource_id} with my Payment authorization proof.
POST /mpp/sub/{resource_id} Subscribe to a resource with an MPP credential · Mpp Subscription Resource #
Ask an LLM
“How do I create an MPP subscription once my standing authority transaction is on-chain?”
“Can I make subscribing idempotent with an Idempotency-Key header?”
Tell an agent
Subscribe to resource {resource_id} with my authority credential.
Create an MPP subscription for {resource_id} and return the subscription id.
GET /mpp/sub/{resource_id} Get an MPP subscription challenge for a resource · Mpp Subscription Resource #
Ask an LLM
“What billing period does an MPP subscription challenge ask for?”
“How do I see the subscription terms for a resource before subscribing?”
Tell an agent
Get the subscription challenge for resource {resource_id}.
Show the period count and unit offered for subscribing to {resource_id}.
POST /mpp/verify/receipt Verify a JWS receipt via the MPP route · Mpp Verify Receipt #
Ask an LLM
“Can an MPP client verify a payment receipt JWS?”
“Does MPP receipt verification support checking against my own JWKS?”
Tell an agent
Verify MPP receipt {jws}.
Check MPP receipt {jws} against keys {jwks}.
POST /mpp/verify/rfc9421 Verify an RFC 9421 signed request via MPP · Mpp Verify Rfc9421 #
Ask an LLM
“How can an MPP client check an RFC 9421 HTTP message signature?”
“Can MPP signature verification require a Content-Digest header?”
Tell an agent
Verify the RFC 9421 signature on {method} {authority}{path} using key {public_key_hex} and headers {headers}.
Check MPP message signature for path {path} with public key {public_key_hex}.

Documentation

Specifications

Other Resources

🔗
AgentCard
https://raw.githubusercontent.com/api-evangelist/algovoi-co-uk/refs/heads/main/a2a/algovoi-co-uk-a2a.yml
🔗
AgentCard
https://pay.algovoi.co.uk/.well-known/agent-card.json
🔗
LLMsTxt
https://raw.githubusercontent.com/api-evangelist/algovoi-co-uk/refs/heads/main/llms/algovoi-co-uk-pay-llms.txt
🔗
LLMsTxt
https://pay.algovoi.co.uk/llms.txt
🔗
Conventions
https://raw.githubusercontent.com/api-evangelist/algovoi-co-uk/refs/heads/main/conventions/algovoi-co-uk-conventions.yml
🔗
Idempotency
https://raw.githubusercontent.com/api-evangelist/algovoi-co-uk/refs/heads/main/conventions/algovoi-co-uk-conventions.yml
🔗
ErrorCatalog
https://raw.githubusercontent.com/api-evangelist/algovoi-co-uk/refs/heads/main/errors/algovoi-co-uk-problem-types.yml
🔗
Plans
https://raw.githubusercontent.com/api-evangelist/algovoi-co-uk/refs/heads/main/plans/algovoi-co-uk-plans-pricing.yml
🔗
Sandbox
https://raw.githubusercontent.com/api-evangelist/algovoi-co-uk/refs/heads/main/sandbox/algovoi-co-uk-sandbox.yml
🔗
ErrorCodes
https://docs.algovoi.co.uk/api-reference/errors
🔗
Webhooks
https://raw.githubusercontent.com/api-evangelist/algovoi-co-uk/refs/heads/main/asyncapi/algovoi-co-uk-webhooks.yml
🔗
Webhooks
https://docs.algovoi.co.uk/integrations/outbound-webhooks
🔗
DataModel
https://raw.githubusercontent.com/api-evangelist/algovoi-co-uk/refs/heads/main/data-model/algovoi-co-uk-data-model.yml
🔗
AgentCard
https://api.algovoi.co.uk/.well-known/agent-card.json
🔗
SignUp
https://dash.algovoi.co.uk/signup
🔗
Components
https://raw.githubusercontent.com/api-evangelist/algovoi-co-uk/refs/heads/main/components/algovoi-co-uk-components.yml
🔗
AgentCard
https://agents.algovoi.co.uk/.well-known/agent-card.json
🔗
LLMsTxt
https://raw.githubusercontent.com/api-evangelist/algovoi-co-uk/refs/heads/main/llms/algovoi-co-uk-clinic-llms.txt
🔗
LLMsTxt
https://agents.algovoi.co.uk/llms.txt
🔗
Dashboard
https://agent-trust-bench.algovoi.co.uk/stats
🔗
SourceCode
https://github.com/chopmob-cloud/algovoi-audit-verifier
🔗
ToolCrosswalk
https://raw.githubusercontent.com/api-evangelist/algovoi-co-uk/refs/heads/main/mcp/algovoi-co-uk-tool-crosswalk.yml
🔗
SourceCode
https://github.com/chopmob-cloud/AlgoVoi-MCP-Server
🔗
Packages
https://raw.githubusercontent.com/api-evangelist/algovoi-co-uk/refs/heads/main/packages/algovoi-co-uk-packages.yml

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/algovoi-co-uk:algovoi-co-uk-mpp-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

algovoi-co-uk-mpp-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Algovoi Co Uk Mpp API
  x-refined-note:
  - x-guidance differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged mpp across 2 of this provider''s published API definitions: algovoi-co-uk-gateway-openapi.json, algovoi-co-uk-pay-openapi.json. Each path carries the servers of the definition it was published in.'
tags:
- name: mpp
paths:
  /mpp/challenge:
    post:
      tags:
      - mpp
      summary: Mpp Challenge
      description: 'Explicit challenge pre-fetch for MPP agents that want to obtain a

        challenge token before building their payment transaction.


        Returns the same challenge object that GET /mpp/{resource_id} returns

        in its 401 body, allowing agents to pipeline challenge fetch → pay →

        proof submission without the round-trip to the resource endpoint.'
      operationId: mpp_challenge_mpp_challenge_post
      parameters:
      - name: tenant_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Tenant Id
      - name: x-tenant-id
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MppChallengeRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MppChallengeResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-payment-info:
        authMode: api_key
  /mpp/probe:
    get:
      tags:
      - mpp
      summary: Mpp Probe
      description: 'Discovery probe + operator-level paid resource.


        No Authorization header → 402 + WWW-Authenticate: Payment challenge.

        Authorization: Payment → verify on-chain → 200 receipt.


        Payment goes to the AlgoVoi operator address (not a tenant). No DB

        session needed — facilitator verifies on-chain; receipt is logged.'
      operationId: mpp_probe_mpp_probe_delete
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: true
              type: object
              description: Optional payment proof or invocation parameters
              example: {}
        required: false
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '402':
          description: 'Payment Required — WWW-Authenticate: Payment'
      minPrice: 10000
      maxPrice: 10000
      inputSchema:
        type: object
        additionalProperties: true
      outputSchema:
        type: object
        properties:
          receipt:
            type: string
          resource_id:
            type: string
          tx_id:
            type: string
      x-payment-info:
        authMode: payment
        protocols:
        - x402
        - mpp
        price:
          mode: fixed
          amount: '10000'
          currency: '0x20c000000000000000000000b9537d11c60e8b50'
      x-discovery:
        resources:
        - url: https://api.algovoi.co.uk/mpp/probe
          description: MPP probe — canonical Tempo USDCe payment challenge
          network: tempo
          amount: '10000'
          asset: '0x20c000000000000000000000b9537d11c60e8b50'
    put:
      tags:
      - mpp
      summary: Mpp Probe
      description: 'Discovery probe + operator-level paid resource.


        No Authorization header → 402 + WWW-Authenticate: Payment challenge.

        Authorization: Payment → verify on-chain → 200 receipt.


        Payment goes to the AlgoVoi operator address (not a tenant). No DB

        session needed — facilitator verifies on-chain; receipt is logged.'
      operationId: putMppProbe
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: true
              type: object
              description: Optional payment proof or invocation parameters
              example: {}
        required: false
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '402':
          description: 'Payment Required — WWW-Authenticate: Payment'
      minPrice: 10000
      maxPrice: 10000
      inputSchema:
        type: object
        additionalProperties: true
      outputSchema:
        type: object
        properties:
          receipt:
            type: string
          resource_id:
            type: string
          tx_id:
            type: string
      x-payment-info:
        authMode: payment
        protocols:
        - x402
        - mpp
        price:
          mode: fixed
          amount: '10000'
          currency: '0x20c000000000000000000000b9537d11c60e8b50'
      x-discovery:
        resources:
        - url: https://api.algovoi.co.uk/mpp/probe
          description: MPP probe — canonical Tempo USDCe payment challenge
          network: tempo
          amount: '10000'
          asset: '0x20c000000000000000000000b9537d11c60e8b50'
      x-operation-id-source: normalized
      x-operation-id-original: mpp_probe_mpp_probe_delete
    post:
      tags:
      - mpp
      summary: Mpp Probe
      description: 'Discovery probe + operator-level paid resource.


        No Authorization header → 402 + WWW-Authenticate: Payment challenge.

        Authorization: Payment → verify on-chain → 200 receipt.


        Payment goes to the AlgoVoi operator address (not a tenant). No DB

        session needed — facilitator verifies on-chain; receipt is logged.'
      operationId: postMppProbe
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: true
              type: object
              description: Optional payment proof or invocation parameters
              example: {}
        required: false
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '402':
          description: 'Payment Required — WWW-Authenticate: Payment'
      minPrice: 10000
      maxPrice: 10000
      inputSchema:
        type: object
        additionalProperties: true
      outputSchema:
        type: object
        properties:
          receipt:
            type: string
          resource_id:
            type: string
          tx_id:
            type: string
      x-payment-info:
        authMode: payment
        protocols:
        - x402
        - mpp
        price:
          mode: fixed
          amount: '10000'
          currency: '0x20c000000000000000000000b9537d11c60e8b50'
      x-discovery:
        resources:
        - url: https://api.algovoi.co.uk/mpp/probe
          description: MPP probe — canonical Tempo USDCe payment challenge
          network: tempo
          amount: '10000'
          asset: '0x20c000000000000000000000b9537d11c60e8b50'
      x-operation-id-source: normalized
      x-operation-id-original: mpp_probe_mpp_probe_delete
    delete:
      tags:
      - mpp
      summary: Mpp Probe
      description: 'Discovery probe + operator-level paid resource.


        No Authorization header → 402 + WWW-Authenticate: Payment challenge.

        Authorization: Payment → verify on-chain → 200 receipt.


        Payment goes to the AlgoVoi operator address (not a tenant). No DB

        session needed — facilitator verifies on-chain; receipt is logged.'
      operationId: deleteMppProbe
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: true
              type: object
              description: Optional payment proof or invocation parameters
              example: {}
        required: false
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '402':
          description: 'Payment Required — WWW-Authenticate: Payment'
      minPrice: 10000
      maxPrice: 10000
      inputSchema:
        type: object
        additionalProperties: true
      outputSchema:
        type: object
        properties:
          receipt:
            type: string
          resource_id:
            type: string
          tx_id:
            type: string
      x-payment-info:
        authMode: payment
        protocols:
        - x402
        - mpp
        price:
          mode: fixed
          amount: '10000'
          currency: '0x20c000000000000000000000b9537d11c60e8b50'
      x-discovery:
        resources:
        - url: https://api.algovoi.co.uk/mpp/probe
          description: MPP probe — canonical Tempo USDCe payment challenge
          network: tempo
          amount: '10000'
          asset: '0x20c000000000000000000000b9537d11c60e8b50'
      x-operation-id-source: normalized
      x-operation-id-original: mpp_probe_mpp_probe_delete
    options:
      tags:
      - mpp
      summary: Mpp Probe
      description: 'Discovery probe + operator-level paid resource.


        No Authorization header → 402 + WWW-Authenticate: Payment challenge.

        Authorization: Payment → verify on-chain → 200 receipt.


        Payment goes to the AlgoVoi operator address (not a tenant). No DB

        session needed — facilitator verifies on-chain; receipt is logged.'
      operationId: optionsMppProbe
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: true
              type: object
              description: Optional payment proof or invocation parameters
              example: {}
        required: false
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '402':
          description: 'Payment Required — WWW-Authenticate: Payment'
      minPrice: 10000
      maxPrice: 10000
      inputSchema:
        type: object
        additionalProperties: true
      outputSchema:
        type: object
        properties:
          receipt:
            type: string
          resource_id:
            type: string
          tx_id:
            type: string
      x-payment-info:
        authMode: payment
        protocols:
        - x402
        - mpp
        price:
          mode: fixed
          amount: '10000'
          currency: '0x20c000000000000000000000b9537d11c60e8b50'
      x-discovery:
        resources:
        - url: https://api.algovoi.co.uk/mpp/probe
          description: MPP probe — canonical Tempo USDCe payment challenge
          network: tempo
          amount: '10000'
          asset: '0x20c000000000000000000000b9537d11c60e8b50'
      x-operation-id-source: normalized
      x-operation-id-original: mpp_probe_mpp_probe_delete
    head:
      tags:
      - mpp
      summary: Mpp Probe
      description: 'Discovery probe + operator-level paid resource.


        No Authorization header → 402 + WWW-Authenticate: Payment challenge.

        Authorization: Payment → verify on-chain → 200 receipt.


        Payment goes to the AlgoVoi operator address (not a tenant). No DB

        session needed — facilitator verifies on-chain; receipt is logged.'
      operationId: headMppProbe
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: true
              type: object
              description: Optional payment proof or invocation parameters
              example: {}
        required: false
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '402':
          description: 'Payment Required — WWW-Authenticate: Payment'
      minPrice: 10000
      maxPrice: 10000
      inputSchema:
        type: object
        additionalProperties: true
      outputSchema:
        type: object
        properties:
          receipt:
            type: string
          resource_id:
            type: string
          tx_id:
            type: string
      x-payment-info:
        authMode: payment
        protocols:
        - x402
        - mpp
        price:
          mode: fixed
          amount: '10000'
          currency: '0x20c000000000000000000000b9537d11c60e8b50'
      x-discovery:
        resources:
        - url: https://api.algovoi.co.uk/mpp/probe
          description: MPP probe — canonical Tempo USDCe payment challenge
          network: tempo
          amount: '10000'
          asset: '0x20c000000000000000000000b9537d11c60e8b50'
      x-operation-id-source: normalized
      x-operation-id-original: mpp_probe_mpp_probe_delete
    patch:
      tags:
      - mpp
      summary: Mpp Probe
      description: 'Discovery probe + operator-level paid resource.


        No Authorization header → 402 + WWW-Authenticate: Payment challenge.

        Authorization: Payment → verify on-chain → 200 receipt.


        Payment goes to the AlgoVoi operator address (not a tenant). No DB

        session needed — facilitator verifies on-chain; receipt is logged.'
      operationId: patchMppProbe
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: true
              type: object
              description: Optional payment proof or invocation parameters
              example: {}
        required: false
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '402':
          description: 'Payment Required — WWW-Authenticate: Payment'
      minPrice: 10000
      maxPrice: 10000
      inputSchema:
        type: object
        additionalProperties: true
      outputSchema:
        type: object
        properties:
          receipt:
            type: string
          resource_id:
            type: string
          tx_id:
            type: string
      x-payment-info:
        authMode: payment
        protocols:
        - x402
        - mpp
        price:
          mode: fixed
          amount: '10000'
          currency: '0x20c000000000000000000000b9537d11c60e8b50'
      x-discovery:
        resources:
        - url: https://api.algovoi.co.uk/mpp/probe
          description: MPP probe — canonical Tempo USDCe payment challenge
          network: tempo
          amount: '10000'
          asset: '0x20c000000000000000000000b9537d11c60e8b50'
      x-operation-id-source: normalized
      x-operation-id-original: mpp_probe_mpp_probe_delete
  /mpp/{resource_id}:
    get:
      tags:
      - mpp
      summary: Mpp Resource
      description: 'IETF draft-httpauth-payment resource gate.


        No Authorization header → HTTP 401 + WWW-Authenticate: Payment challenge.

        Authorization: Payment → validate challenge echo → verify on-chain → HTTP 200.


        The x402 /protected/{resource_id} endpoint is completely unchanged.'
      operationId: mpp_resource_mpp__resource_id__get
      parameters:
      - name: resource_id
        in: path
        required: true
        schema:
          type: string
          title: Resource Id
      - name: tenant_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Tenant Id
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      - name: x-tenant-id
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '402':
          description: Payment Required
      minPrice: 10000
      maxPrice: 10000
      x-payment-info:
        authMode: payment
        protocols:
        - mpp
        - x402
        price:
          mode: fixed
          amount: '10000'
          currency: '0x20c000000000000000000000b9537d11c60e8b50'
  /mpp/sub/{resource_id}:
    post:
      tags:
      - mpp
      summary: Mpp Subscription Resource
      description: 'MPP subscription gate (API key auth).


        No proof → 402 + intent="subscription" challenge with periodCount/periodUnit.

        Credential present → verify authority tx → create MppSubscription → return subscriptionId.'
      operationId: mpp_subscription_resource_mpp_sub__resource_id__post
      parameters:
      - name: resource_id
        in: path
        required: true
        schema:
          type: string
          title: Resource Id
      - name: tenant_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Tenant Id
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      - name: Idempotency-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Idempotency-Key
      - name: x-tenant-id
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '402':
          description: Payment Required — subscription challenge
      x-payment-info:
        authMode: payment
        protocols:
        - mpp
        intent: subscription
    get:
      tags:
      - mpp
      summary: Mpp Subscription Resource
      description: 'MPP subscription gate (API key auth).


        No proof → 402 + intent="subscription" challenge with periodCount/periodUnit.

        Credential present → verify authority tx → create MppSubscription → return subscriptionId.'
      operationId: getMppSubByResourceId
      parameters:
      - name: resource_id
        in: path
        required: true
        schema:
          type: string
          title: Resource Id
      - name: tenant_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Tenant Id
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      - name: Idempotency-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Idempotency-Key
      - name: x-tenant-id
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '402':
          description: Payment Required — subscription challenge
      x-payment-info:
        authMode: payment
        protocols:
        - mpp
        intent: subscription
      x-operation-id-source: normalized
      x-operation-id-original: mpp_subscription_resource_mpp_sub__resource_id__post
  /mpp/verify/receipt:
    post:
      tags:
      - mpp
      summary: Mpp Verify Receipt
      operationId: mpp_verify_receipt_mpp_verify_receipt_post
      parameters:
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayableReceiptVerifyRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /mpp/verify/rfc9421:
    post:
      tags:
      - mpp
      summary: Mpp Verify Rfc9421
      operationId: mpp_verify_rfc9421_mpp_verify_rfc9421_post
      parameters:
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayableRfc9421VerifyRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    MppChallengeResponse:
      properties:
        challenge:
          additionalProperties: true
          type: object
          title: Challenge
        accepts:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Accepts
      type: object
      required:
      - challenge
      - accepts
      title: MppChallengeResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    MppChallengeRequest:
      properties:
        resource_id:
          type: string
          title: Resource Id
        network:
          anyOf:
          - type: string
          - type: 'null'
          title: Network
      type: object
      required:
      - resource_id
      title: MppChallengeRequest
    PayableReceiptVerifyRequest:
      properties:
        jws:
          type: string
          title: Jws
        expected_payment_hash:
          anyOf:
          - type: string
          - type: 'null'
          title: Expected Payment Hash
        receipt_required:
          type: boolean
          title: Receipt Required
          default: false
        jwks:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Jwks
      additionalProperties: false
      type: object
      required:
      - jws
      title: PayableReceiptVerifyRequest
    PayableRfc9421VerifyRequest:
      properties:
        method:
          type: string
          title: Method
        authority:
          type: string
          title: Authority
        path:
          type: string
          title: Path
        scheme:
          type: string
          title: Scheme
          default: https
        headers:
          additionalProperties:
            type: string
          type: object
          title: Headers
        body_b64:
          type: string
          title: Body B64
          default: ''
        public_key_hex:
          type: string
          title: Public Key Hex
        require_content_digest:
          type: boolean
          title: Require Content Digest
          default: true
        mode:
          type: string
          title: Mode
          default: rfc9421
      additionalProperties: false
      type: object
      required:
      - method
      - authority
      - path
      - headers
      - public_key_hex
      title: PayableRfc9421VerifyRequest
x-refined-from:
- algovoi-co-uk-gateway-openapi.json
- algovoi-co-uk-pay-openapi.json