{
  "openapi": "3.1.0",
  "info": {
    "title": "The Vault Cannabis Seeds Store API",
    "version": "1.0.0",
    "description": "Public API and catalog discovery endpoints for The Vault Cannabis Seeds Store with Machine Payments Protocol (MPP) support."
  },
  "x-service-info": {
    "categories": [
      "ecommerce",
      "shopping",
      "seeds",
      "cannabis"
    ],
    "docs": {
      "homepage": "https://www.cannabis-seeds-store.co.uk",
      "apiReference": "https://www.cannabis-seeds-store.co.uk/openapi.json",
      "llms": "https://www.cannabis-seeds-store.co.uk/llms.txt",
      "agents": "https://www.cannabis-seeds-store.co.uk/AGENTS.md",
      "auth": "https://www.cannabis-seeds-store.co.uk/auth.md"
    }
  },
  "servers": [
    {
      "url": "https://www.cannabis-seeds-store.co.uk",
      "description": "Production server"
    }
  ],
  "paths": {
    "/.well-known/api-catalog": {
      "get": {
        "summary": "API Catalog",
        "description": "Machine-readable linkset catalog of exposed APIs per RFC 9727.",
        "responses": {
          "200": {
            "description": "API Catalog in RFC 9264 Linkset format",
            "content": {
              "application/linkset+json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/oauth-protected-resource": {
      "get": {
        "summary": "OAuth Protected Resource Metadata",
        "description": "OAuth 2.0 Protected Resource Metadata (RFC 9728).",
        "responses": {
          "200": {
            "description": "Protected resource metadata",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/oauth-authorization-server": {
      "get": {
        "summary": "OAuth Authorization Server Metadata",
        "description": "OAuth 2.0 Authorization Server Metadata (RFC 8414) with Auth.md agent registration discovery.",
        "responses": {
          "200": {
            "description": "Authorization server metadata with agent_auth block",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/acp.json": {
      "get": {
        "summary": "Agentic Commerce Protocol Discovery",
        "description": "Agentic Commerce Protocol (ACP) discovery document.",
        "responses": {
          "200": {
            "description": "ACP Discovery document",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/agent.json": {
      "get": {
        "summary": "A2A Agent Card with AP2 Extension",
        "description": "A2A Agent Card metadata containing AP2 (Agent Payments Protocol) extension support.",
        "responses": {
          "200": {
            "description": "A2A Agent Card JSON document",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/checkout": {
      "post": {
        "summary": "Agentic Checkout and Payment",
        "description": "Execute agentic checkout and machine payment via Machine Payments Protocol (MPP) or AP2.",
        "x-payment-info": {
          "intent": "charge",
          "method": "stripe",
          "amount": "1000",
          "currency": "GBP",
          "description": "Cart checkout payment",
          "offers": [
            {
              "intent": "charge",
              "method": "stripe",
              "amount": "1000",
              "currency": "GBP",
              "description": "Stripe card or token payment"
            },
            {
              "intent": "charge",
              "method": "tempo",
              "amount": "1000000",
              "currency": "0x20c0000000000000000000000000000000000000",
              "description": "Tempo stablecoin payment (USDC)"
            },
            {
              "intent": "charge",
              "method": "card",
              "amount": "1000",
              "currency": "GBP",
              "description": "Credit/Debit Card payment"
            },
            {
              "intent": "charge",
              "method": "lightning",
              "amount": "10000",
              "currency": "sat",
              "description": "Bitcoin Lightning network payment"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Checkout processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required - Machine Payments Protocol (MPP) challenge",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders": {
      "post": {
        "summary": "Create and Pay Order",
        "description": "Submit payable order transaction via MPP or AP2.",
        "x-payment-info": {
          "intent": "charge",
          "method": "tempo",
          "amount": "1000000",
          "currency": "0x20c0000000000000000000000000000000000000",
          "description": "Order payment transaction",
          "offers": [
            {
              "intent": "charge",
              "method": "tempo",
              "amount": "1000000",
              "currency": "0x20c0000000000000000000000000000000000000",
              "description": "Tempo stablecoin payment (USDC)"
            },
            {
              "intent": "charge",
              "method": "stripe",
              "amount": "1000",
              "currency": "GBP",
              "description": "Stripe card or token payment"
            },
            {
              "intent": "charge",
              "method": "card",
              "amount": "1000",
              "currency": "GBP",
              "description": "Credit/Debit card payment"
            },
            {
              "intent": "charge",
              "method": "lightning",
              "amount": "10000",
              "currency": "sat",
              "description": "Bitcoin Lightning payment"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Order created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required - Machine Payments Protocol (MPP) challenge",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/health": {
      "get": {
        "summary": "Health Check",
        "description": "Returns operational health status of the API.",
        "responses": {
          "200": {
            "description": "Health status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "pass"
                    },
                    "timestamp": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/auth.md": {
      "get": {
        "summary": "Auth.md Agent Registration & Authentication Specification",
        "description": "Auth.md documentation and agent registration flow details.",
        "responses": {
          "200": {
            "description": "Auth.md Markdown document",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}
