{
  "openapi": "3.1.0",
  "info": {
    "title": "Payments AI website API",
    "version": "1.0.0",
    "summary": "Read-only JSON, Markdown, and content-negotiation surface of www.payments.ai.",
    "description": "Machine-readable surface of the Payments AI website: company and pricing facts as JSON, a Markdown representation of every page, and `Accept: text/markdown` content negotiation per acceptmarkdown.com. No authentication is required and every endpoint is a GET.\n\n## Versioning and deprecation\n\nJSON endpoints are versioned in the URL under `/api/v1`, currently stable. Nothing on this host is deprecated.\n\n- Additive changes ship in place: a response may gain a field, and never loses or renames one.\n- A breaking change ships under a new version prefix (/api/v2). The previous prefix keeps responding.\n- A deprecated version keeps responding for at least 12 months from the day it is announced.\n- Deprecation is announced with the Deprecation (RFC 9745) and Sunset (RFC 8594) response headers on the affected endpoints, and restated in this document, /llms.txt, and /api/v1/site.json.\n\nIn short: an integration against `/api/v1` has at least 12 months' warning before anything stops answering, and the warning arrives as a response header rather than only as a blog post.\n\nProduct and integration APIs (checkout, subscriptions, webhooks, MCP) are not part of this description; they are documented at https://docs.payments.ai.",
    "contact": {
      "name": "Payments AI support",
      "email": "support@payments.ai",
      "url": "https://docs.payments.ai"
    },
    "license": {
      "name": "Proprietary",
      "identifier": "LicenseRef-Proprietary"
    }
  },
  "servers": [
    {
      "url": "https://www.payments.ai",
      "description": "Production website"
    }
  ],
  "tags": [
    {
      "name": "json",
      "description": "Read-only JSON endpoints under /api/v1"
    },
    {
      "name": "markdown",
      "description": "Markdown representations and machine-readable text files"
    },
    {
      "name": "pages",
      "description": "HTML pages that also serve Markdown via Accept negotiation"
    }
  ],
  "paths": {
    "/": {
      "get": {
        "operationId": "getPageRoot",
        "summary": "Payments AI",
        "description": "Comparison hub for the two products: Merchant of Record for AI apps and creators, and payment orchestration for platforms.",
        "tags": [
          "pages"
        ],
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "required": false,
            "description": "Send `text/markdown` to get the Markdown representation of this page instead of HTML. Quality values are honoured; responses set `Vary: Accept, Accept-Encoding`.",
            "schema": {
              "type": "string",
              "examples": [
                "text/markdown",
                "text/html"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page, as HTML for browsers or Markdown for agents.",
            "headers": {
              "Vary": {
                "description": "Always includes `Accept`, so caches keep the two representations apart.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/html"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          },
          "406": {
            "description": "No representation of this resource matches the Accept header (for example `text/markdown;q=0` on a Markdown-only resource). The body lists the media types that are available.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        }
      }
    },
    "/index.md": {
      "get": {
        "operationId": "getMarkdownIndexMd",
        "summary": "Payments AI (Markdown)",
        "description": "Comparison hub for the two products: Merchant of Record for AI apps and creators, and payment orchestration for platforms. Markdown, served directly at its own path — the same content the HTML page negotiates to.",
        "tags": [
          "markdown"
        ],
        "responses": {
          "200": {
            "description": "Payments AI, as Markdown.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          }
        }
      }
    },
    "/mor/": {
      "get": {
        "operationId": "getPageMor",
        "summary": "Merchant of Record for AI apps & creators",
        "description": "Merchant-of-record checkouts: you are not the merchant of record, sales tax and VAT are collected at checkout and remitted for you, and agents build the checkout via MCP.",
        "tags": [
          "pages"
        ],
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "required": false,
            "description": "Send `text/markdown` to get the Markdown representation of this page instead of HTML. Quality values are honoured; responses set `Vary: Accept, Accept-Encoding`.",
            "schema": {
              "type": "string",
              "examples": [
                "text/markdown",
                "text/html"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page, as HTML for browsers or Markdown for agents.",
            "headers": {
              "Vary": {
                "description": "Always includes `Accept`, so caches keep the two representations apart.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/html"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          },
          "406": {
            "description": "No representation of this resource matches the Accept header (for example `text/markdown;q=0` on a Markdown-only resource). The body lists the media types that are available.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        }
      }
    },
    "/mor/index.md": {
      "get": {
        "operationId": "getMarkdownMorIndexMd",
        "summary": "Merchant of Record for AI apps & creators (Markdown)",
        "description": "Merchant-of-record checkouts: you are not the merchant of record, sales tax and VAT are collected at checkout and remitted for you, and agents build the checkout via MCP. Markdown, served directly at its own path — the same content the HTML page negotiates to.",
        "tags": [
          "markdown"
        ],
        "responses": {
          "200": {
            "description": "Merchant of Record for AI apps & creators, as Markdown.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          }
        }
      }
    },
    "/mor/mcp/": {
      "get": {
        "operationId": "getPageMorMcp",
        "summary": "MCP for Merchant of Record",
        "description": "The nine setup steps an AI agent performs over the Payments AI MCP server, from opening the account to switching on live payments.",
        "tags": [
          "pages"
        ],
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "required": false,
            "description": "Send `text/markdown` to get the Markdown representation of this page instead of HTML. Quality values are honoured; responses set `Vary: Accept, Accept-Encoding`.",
            "schema": {
              "type": "string",
              "examples": [
                "text/markdown",
                "text/html"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page, as HTML for browsers or Markdown for agents.",
            "headers": {
              "Vary": {
                "description": "Always includes `Accept`, so caches keep the two representations apart.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/html"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          },
          "406": {
            "description": "No representation of this resource matches the Accept header (for example `text/markdown;q=0` on a Markdown-only resource). The body lists the media types that are available.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        }
      }
    },
    "/mor/mcp.md": {
      "get": {
        "operationId": "getMarkdownMorMcpMd",
        "summary": "MCP for Merchant of Record (Markdown)",
        "description": "The nine setup steps an AI agent performs over the Payments AI MCP server, from opening the account to switching on live payments. Markdown, served directly at its own path — the same content the HTML page negotiates to.",
        "tags": [
          "markdown"
        ],
        "responses": {
          "200": {
            "description": "MCP for Merchant of Record, as Markdown.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          }
        }
      }
    },
    "/mor/pricing/": {
      "get": {
        "operationId": "getPageMorPricing",
        "summary": "Merchant of Record pricing",
        "description": "Itemized Merchant of Record rates for payments, payouts, fraud, and optimization.",
        "tags": [
          "pages"
        ],
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "required": false,
            "description": "Send `text/markdown` to get the Markdown representation of this page instead of HTML. Quality values are honoured; responses set `Vary: Accept, Accept-Encoding`.",
            "schema": {
              "type": "string",
              "examples": [
                "text/markdown",
                "text/html"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page, as HTML for browsers or Markdown for agents.",
            "headers": {
              "Vary": {
                "description": "Always includes `Accept`, so caches keep the two representations apart.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/html"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          },
          "406": {
            "description": "No representation of this resource matches the Accept header (for example `text/markdown;q=0` on a Markdown-only resource). The body lists the media types that are available.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        }
      }
    },
    "/mor/pricing.md": {
      "get": {
        "operationId": "getMarkdownMorPricingMd",
        "summary": "Merchant of Record pricing (Markdown)",
        "description": "Itemized Merchant of Record rates for payments, payouts, fraud, and optimization. Markdown, served directly at its own path — the same content the HTML page negotiates to.",
        "tags": [
          "markdown"
        ],
        "responses": {
          "200": {
            "description": "Merchant of Record pricing, as Markdown.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          }
        }
      }
    },
    "/platforms/": {
      "get": {
        "operationId": "getPagePlatforms",
        "summary": "Payment orchestration for platforms",
        "description": "Embedded orchestration that routes across gateways to recover failed sales and retain payment revenue.",
        "tags": [
          "pages"
        ],
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "required": false,
            "description": "Send `text/markdown` to get the Markdown representation of this page instead of HTML. Quality values are honoured; responses set `Vary: Accept, Accept-Encoding`.",
            "schema": {
              "type": "string",
              "examples": [
                "text/markdown",
                "text/html"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page, as HTML for browsers or Markdown for agents.",
            "headers": {
              "Vary": {
                "description": "Always includes `Accept`, so caches keep the two representations apart.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/html"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          },
          "406": {
            "description": "No representation of this resource matches the Accept header (for example `text/markdown;q=0` on a Markdown-only resource). The body lists the media types that are available.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        }
      }
    },
    "/platforms/index.md": {
      "get": {
        "operationId": "getMarkdownPlatformsIndexMd",
        "summary": "Payment orchestration for platforms (Markdown)",
        "description": "Embedded orchestration that routes across gateways to recover failed sales and retain payment revenue. Markdown, served directly at its own path — the same content the HTML page negotiates to.",
        "tags": [
          "markdown"
        ],
        "responses": {
          "200": {
            "description": "Payment orchestration for platforms, as Markdown.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          }
        }
      }
    },
    "/platforms/pricing/": {
      "get": {
        "operationId": "getPagePlatformsPricing",
        "summary": "Payment orchestration pricing",
        "description": "Pricing model and terms for payment orchestration. Itemized rates are quoted by sales.",
        "tags": [
          "pages"
        ],
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "required": false,
            "description": "Send `text/markdown` to get the Markdown representation of this page instead of HTML. Quality values are honoured; responses set `Vary: Accept, Accept-Encoding`.",
            "schema": {
              "type": "string",
              "examples": [
                "text/markdown",
                "text/html"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page, as HTML for browsers or Markdown for agents.",
            "headers": {
              "Vary": {
                "description": "Always includes `Accept`, so caches keep the two representations apart.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/html"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          },
          "406": {
            "description": "No representation of this resource matches the Accept header (for example `text/markdown;q=0` on a Markdown-only resource). The body lists the media types that are available.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        }
      }
    },
    "/platforms/pricing.md": {
      "get": {
        "operationId": "getMarkdownPlatformsPricingMd",
        "summary": "Payment orchestration pricing (Markdown)",
        "description": "Pricing model and terms for payment orchestration. Itemized rates are quoted by sales. Markdown, served directly at its own path — the same content the HTML page negotiates to.",
        "tags": [
          "markdown"
        ],
        "responses": {
          "200": {
            "description": "Payment orchestration pricing, as Markdown.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          }
        }
      }
    },
    "/mor/terms-of-service/": {
      "get": {
        "operationId": "getPageMorTermsOfService",
        "summary": "MoR Terms of Service",
        "description": "Terms of Service for Merchant of Record checkout, billing, and payment infrastructure.",
        "tags": [
          "pages"
        ],
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "required": false,
            "description": "Send `text/markdown` to get the Markdown representation of this page instead of HTML. Quality values are honoured; responses set `Vary: Accept, Accept-Encoding`.",
            "schema": {
              "type": "string",
              "examples": [
                "text/markdown",
                "text/html"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page, as HTML for browsers or Markdown for agents.",
            "headers": {
              "Vary": {
                "description": "Always includes `Accept`, so caches keep the two representations apart.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/html"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          },
          "406": {
            "description": "No representation of this resource matches the Accept header (for example `text/markdown;q=0` on a Markdown-only resource). The body lists the media types that are available.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        }
      }
    },
    "/mor/terms-of-service.md": {
      "get": {
        "operationId": "getMarkdownMorTermsOfServiceMd",
        "summary": "MoR Terms of Service (Markdown)",
        "description": "Terms of Service for Merchant of Record checkout, billing, and payment infrastructure. Markdown, served directly at its own path — the same content the HTML page negotiates to.",
        "tags": [
          "markdown"
        ],
        "responses": {
          "200": {
            "description": "MoR Terms of Service, as Markdown.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          }
        }
      }
    },
    "/mor/privacy-policy/": {
      "get": {
        "operationId": "getPageMorPrivacyPolicy",
        "summary": "MoR Privacy Policy",
        "description": "How Payments.Ai LLC collects, uses, and protects personal information for MoR services.",
        "tags": [
          "pages"
        ],
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "required": false,
            "description": "Send `text/markdown` to get the Markdown representation of this page instead of HTML. Quality values are honoured; responses set `Vary: Accept, Accept-Encoding`.",
            "schema": {
              "type": "string",
              "examples": [
                "text/markdown",
                "text/html"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page, as HTML for browsers or Markdown for agents.",
            "headers": {
              "Vary": {
                "description": "Always includes `Accept`, so caches keep the two representations apart.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/html"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          },
          "406": {
            "description": "No representation of this resource matches the Accept header (for example `text/markdown;q=0` on a Markdown-only resource). The body lists the media types that are available.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        }
      }
    },
    "/mor/privacy-policy.md": {
      "get": {
        "operationId": "getMarkdownMorPrivacyPolicyMd",
        "summary": "MoR Privacy Policy (Markdown)",
        "description": "How Payments.Ai LLC collects, uses, and protects personal information for MoR services. Markdown, served directly at its own path — the same content the HTML page negotiates to.",
        "tags": [
          "markdown"
        ],
        "responses": {
          "200": {
            "description": "MoR Privacy Policy, as Markdown.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          }
        }
      }
    },
    "/mor/prohibited-products-and-services/": {
      "get": {
        "operationId": "getPageMorProhibitedProductsAndServices",
        "summary": "Prohibited Products and Services",
        "description": "Products and services that may not be sold through the Payments AI Merchant of Record.",
        "tags": [
          "pages"
        ],
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "required": false,
            "description": "Send `text/markdown` to get the Markdown representation of this page instead of HTML. Quality values are honoured; responses set `Vary: Accept, Accept-Encoding`.",
            "schema": {
              "type": "string",
              "examples": [
                "text/markdown",
                "text/html"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page, as HTML for browsers or Markdown for agents.",
            "headers": {
              "Vary": {
                "description": "Always includes `Accept`, so caches keep the two representations apart.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/html"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          },
          "406": {
            "description": "No representation of this resource matches the Accept header (for example `text/markdown;q=0` on a Markdown-only resource). The body lists the media types that are available.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        }
      }
    },
    "/mor/prohibited-products-and-services.md": {
      "get": {
        "operationId": "getMarkdownMorProhibitedProductsAndServicesMd",
        "summary": "Prohibited Products and Services (Markdown)",
        "description": "Products and services that may not be sold through the Payments AI Merchant of Record. Markdown, served directly at its own path — the same content the HTML page negotiates to.",
        "tags": [
          "markdown"
        ],
        "responses": {
          "200": {
            "description": "Prohibited Products and Services, as Markdown.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          }
        }
      }
    },
    "/platforms/terms-of-service/": {
      "get": {
        "operationId": "getPagePlatformsTermsOfService",
        "summary": "Terms of Service",
        "description": "Website and service terms (Payments.Ai LLC, Delaware).",
        "tags": [
          "pages"
        ],
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "required": false,
            "description": "Send `text/markdown` to get the Markdown representation of this page instead of HTML. Quality values are honoured; responses set `Vary: Accept, Accept-Encoding`.",
            "schema": {
              "type": "string",
              "examples": [
                "text/markdown",
                "text/html"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page, as HTML for browsers or Markdown for agents.",
            "headers": {
              "Vary": {
                "description": "Always includes `Accept`, so caches keep the two representations apart.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/html"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          },
          "406": {
            "description": "No representation of this resource matches the Accept header (for example `text/markdown;q=0` on a Markdown-only resource). The body lists the media types that are available.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        }
      }
    },
    "/platforms/terms-of-service.md": {
      "get": {
        "operationId": "getMarkdownPlatformsTermsOfServiceMd",
        "summary": "Terms of Service (Markdown)",
        "description": "Website and service terms (Payments.Ai LLC, Delaware). Markdown, served directly at its own path — the same content the HTML page negotiates to.",
        "tags": [
          "markdown"
        ],
        "responses": {
          "200": {
            "description": "Terms of Service, as Markdown.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          }
        }
      }
    },
    "/platforms/merchanting-terms/": {
      "get": {
        "operationId": "getPagePlatformsMerchantingTerms",
        "summary": "Merchanting Terms",
        "description": "Payment processing and merchanting terms and conditions.",
        "tags": [
          "pages"
        ],
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "required": false,
            "description": "Send `text/markdown` to get the Markdown representation of this page instead of HTML. Quality values are honoured; responses set `Vary: Accept, Accept-Encoding`.",
            "schema": {
              "type": "string",
              "examples": [
                "text/markdown",
                "text/html"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page, as HTML for browsers or Markdown for agents.",
            "headers": {
              "Vary": {
                "description": "Always includes `Accept`, so caches keep the two representations apart.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/html"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          },
          "406": {
            "description": "No representation of this resource matches the Accept header (for example `text/markdown;q=0` on a Markdown-only resource). The body lists the media types that are available.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        }
      }
    },
    "/platforms/merchanting-terms.md": {
      "get": {
        "operationId": "getMarkdownPlatformsMerchantingTermsMd",
        "summary": "Merchanting Terms (Markdown)",
        "description": "Payment processing and merchanting terms and conditions. Markdown, served directly at its own path — the same content the HTML page negotiates to.",
        "tags": [
          "markdown"
        ],
        "responses": {
          "200": {
            "description": "Merchanting Terms, as Markdown.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          }
        }
      }
    },
    "/platforms/tos-privacy/": {
      "get": {
        "operationId": "getPagePlatformsTosPrivacy",
        "summary": "Privacy Statement",
        "description": "How Payments.Ai LLC collects, uses, and protects personal information.",
        "tags": [
          "pages"
        ],
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "required": false,
            "description": "Send `text/markdown` to get the Markdown representation of this page instead of HTML. Quality values are honoured; responses set `Vary: Accept, Accept-Encoding`.",
            "schema": {
              "type": "string",
              "examples": [
                "text/markdown",
                "text/html"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page, as HTML for browsers or Markdown for agents.",
            "headers": {
              "Vary": {
                "description": "Always includes `Accept`, so caches keep the two representations apart.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/html"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          },
          "406": {
            "description": "No representation of this resource matches the Accept header (for example `text/markdown;q=0` on a Markdown-only resource). The body lists the media types that are available.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        }
      }
    },
    "/platforms/tos-privacy.md": {
      "get": {
        "operationId": "getMarkdownPlatformsTosPrivacyMd",
        "summary": "Privacy Statement (Markdown)",
        "description": "How Payments.Ai LLC collects, uses, and protects personal information. Markdown, served directly at its own path — the same content the HTML page negotiates to.",
        "tags": [
          "markdown"
        ],
        "responses": {
          "200": {
            "description": "Privacy Statement, as Markdown.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          }
        }
      }
    },
    "/404.md": {
      "get": {
        "operationId": "getMarkdownNotFound",
        "summary": "404 recovery map (Markdown)",
        "description": "Every page, Markdown file, and JSON endpoint on this host, in one document. This is what an unknown path points at, and the fastest way to re-orient after a broken link. Markdown, served directly at its own path — the same content the HTML page negotiates to.",
        "tags": [
          "markdown"
        ],
        "responses": {
          "200": {
            "description": "404 recovery map, as Markdown.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/site.json": {
      "get": {
        "operationId": "getSite",
        "summary": "Company, legal entity, and product facts",
        "description": "Canonical facts about Payments AI — legal entity, contact addresses, documentation, and the two products — for citation by agents and answer engines.",
        "tags": [
          "json"
        ],
        "responses": {
          "200": {
            "description": "Company, legal entity, and product facts",
            "headers": {
              "Deprecation": {
                "description": "Set only once this endpoint is deprecated: the date it became deprecated, as an IMF-fixdate (RFC 9745). Absent means supported. It is followed by at least 12 months of service before `Sunset`.",
                "required": false,
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Set only once this endpoint is deprecated: the date it stops responding, as an IMF-fixdate (RFC 8594). Absent means no removal is scheduled.",
                "required": false,
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              }
            }
          },
          "404": {
            "description": "No such endpoint. The body names the documentation to read.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pages.json": {
      "get": {
        "operationId": "getPages",
        "summary": "Index of pages and their Markdown representations",
        "description": "Every public page together with the path of its Markdown representation, so an agent can fetch prose without parsing HTML.",
        "tags": [
          "json"
        ],
        "responses": {
          "200": {
            "description": "Index of pages and their Markdown representations",
            "headers": {
              "Deprecation": {
                "description": "Set only once this endpoint is deprecated: the date it became deprecated, as an IMF-fixdate (RFC 9745). Absent means supported. It is followed by at least 12 months of service before `Sunset`.",
                "required": false,
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Set only once this endpoint is deprecated: the date it stops responding, as an IMF-fixdate (RFC 8594). Absent means no removal is scheduled.",
                "required": false,
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageIndex"
                }
              }
            }
          },
          "404": {
            "description": "No such endpoint. The body names the documentation to read.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pricing/mor.json": {
      "get": {
        "operationId": "getMorPricing",
        "summary": "Merchant of Record pricing",
        "description": "Itemized Merchant of Record pricing: headline card rate, terms, and every fee line by category.",
        "tags": [
          "json"
        ],
        "responses": {
          "200": {
            "description": "Merchant of Record pricing",
            "headers": {
              "Deprecation": {
                "description": "Set only once this endpoint is deprecated: the date it became deprecated, as an IMF-fixdate (RFC 9745). Absent means supported. It is followed by at least 12 months of service before `Sunset`.",
                "required": false,
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Set only once this endpoint is deprecated: the date it stops responding, as an IMF-fixdate (RFC 8594). Absent means no removal is scheduled.",
                "required": false,
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MorPricing"
                }
              }
            }
          },
          "404": {
            "description": "No such endpoint. The body names the documentation to read.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pricing/platforms.json": {
      "get": {
        "operationId": "getPlatformsPricing",
        "summary": "Payment orchestration pricing",
        "description": "Pricing model and terms for payment orchestration. Itemized orchestration rates are not public and are quoted by sales.",
        "tags": [
          "json"
        ],
        "responses": {
          "200": {
            "description": "Payment orchestration pricing",
            "headers": {
              "Deprecation": {
                "description": "Set only once this endpoint is deprecated: the date it became deprecated, as an IMF-fixdate (RFC 9745). Absent means supported. It is followed by at least 12 months of service before `Sunset`.",
                "required": false,
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Set only once this endpoint is deprecated: the date it stops responding, as an IMF-fixdate (RFC 8594). Absent means no removal is scheduled.",
                "required": false,
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformsPricing"
                }
              }
            }
          },
          "404": {
            "description": "No such endpoint. The body names the documentation to read.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/openapi.json": {
      "get": {
        "operationId": "getOpenapiJson",
        "summary": "This OpenAPI description",
        "description": "This description, at the well-known root path. Start here to discover every endpoint, media type, and schema on this host.",
        "tags": [
          "json"
        ],
        "responses": {
          "200": {
            "description": "OpenAPI 3.1 document.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "This document."
                }
              }
            }
          }
        }
      }
    },
    "/api/openapi.json": {
      "get": {
        "operationId": "getApiOpenapiJson",
        "summary": "This OpenAPI description",
        "description": "The same description as at the root path, served under the API prefix for clients that look for it beside the endpoints it documents.",
        "tags": [
          "json"
        ],
        "responses": {
          "200": {
            "description": "OpenAPI 3.1 document.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "This document."
                }
              }
            }
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "operationId": "getLlmsTxt",
        "summary": "llms.txt site summary and link map",
        "description": "What this company sells and where every machine-readable file lives, per llmstxt.org. Markdown syntax, served as text/plain.",
        "tags": [
          "markdown"
        ],
        "responses": {
          "200": {
            "description": "llms.txt document (Markdown syntax, served as text/plain).",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "contentMediaType": "text/markdown"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Error": {
        "type": "object",
        "description": "Error envelope returned by every JSON endpoint and by unknown paths under `/api`.",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "required": [
              "code",
              "status",
              "message",
              "resolution",
              "documentation_url"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "Stable machine code, snake_case.",
                "examples": [
                  "not_found",
                  "method_not_allowed"
                ]
              },
              "status": {
                "type": "integer",
                "description": "HTTP status of this response."
              },
              "message": {
                "type": "string",
                "description": "What went wrong."
              },
              "resolution": {
                "type": "string",
                "description": "What to do next to succeed."
              },
              "documentation_url": {
                "type": "string",
                "format": "uri"
              }
            }
          }
        }
      },
      "Site": {
        "type": "object",
        "description": "Company, legal entity, and product facts.",
        "required": [
          "name",
          "legal_name",
          "url",
          "products",
          "api"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "legal_name": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "description": {
            "type": "string"
          },
          "logo": {
            "type": "string",
            "format": "uri"
          },
          "documentation_url": {
            "type": "string",
            "format": "uri"
          },
          "same_as": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "contact": {
            "type": "object",
            "properties": {
              "support": {
                "type": "string",
                "format": "email"
              },
              "compliance": {
                "type": "string",
                "format": "email"
              }
            }
          },
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "name",
                "url"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "audience": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                },
                "pricing_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            }
          },
          "api": {
            "type": "object",
            "description": "Versioning and deprecation policy for the JSON endpoints on this host.",
            "required": [
              "version",
              "status",
              "notice_period_months",
              "policy"
            ],
            "properties": {
              "version": {
                "type": "string",
                "examples": [
                  "v1"
                ]
              },
              "base_url": {
                "type": "string",
                "format": "uri"
              },
              "status": {
                "type": "string",
                "examples": [
                  "stable",
                  "deprecated"
                ]
              },
              "notice_period_months": {
                "type": "integer",
                "description": "Months a deprecated version keeps responding, counted from the announcement."
              },
              "policy": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "deprecation_header": {
                "type": "string"
              },
              "sunset_header": {
                "type": "string"
              },
              "currently_deprecated": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Paths with a Deprecation header set. Empty when nothing is deprecated."
              },
              "openapi_url": {
                "type": "string",
                "format": "uri"
              }
            }
          },
          "machine_readable": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "PageIndex": {
        "type": "object",
        "required": [
          "pages"
        ],
        "properties": {
          "pages": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "title",
                "html_url",
                "markdown_url"
              ],
              "properties": {
                "title": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "html_url": {
                  "type": "string",
                  "format": "uri"
                },
                "markdown_url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            }
          },
          "not_found_markdown_url": {
            "type": "string",
            "format": "uri"
          },
          "content_negotiation": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "MorPricing": {
        "type": "object",
        "description": "Itemized Merchant of Record pricing.",
        "required": [
          "currency",
          "headline",
          "categories"
        ],
        "properties": {
          "currency": {
            "type": "string",
            "examples": [
              "USD"
            ]
          },
          "headline": {
            "type": "object",
            "description": "The headline card rate, e.g. 2.7% + $0.30 per successful card transaction.",
            "properties": {
              "rate": {
                "type": "string"
              },
              "fixed": {
                "type": "string"
              },
              "basis": {
                "type": "string"
              }
            }
          },
          "terms": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "signup_url": {
            "type": "string",
            "format": "uri"
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "title",
                "line_items"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "subtitle": {
                  "type": "string"
                },
                "highlights": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "line_items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "name",
                      "price"
                    ],
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "price": {
                        "type": "string",
                        "description": "Rate as published, e.g. `2.7% + $0.30`."
                      },
                      "description": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "human_url": {
            "type": "string",
            "format": "uri"
          },
          "markdown_url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "PlatformsPricing": {
        "type": "object",
        "description": "Payment orchestration pricing model. Itemized rates are quoted by sales.",
        "required": [
          "summary",
          "itemized_rates_public"
        ],
        "properties": {
          "currency": {
            "type": "string",
            "examples": [
              "USD"
            ]
          },
          "summary": {
            "type": "string"
          },
          "terms": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "itemized_rates_public": {
            "type": "boolean"
          },
          "quote": {
            "type": "object",
            "properties": {
              "note": {
                "type": "string"
              },
              "sales_email": {
                "type": "string",
                "format": "email"
              },
              "signup_url": {
                "type": "string",
                "format": "uri"
              }
            }
          },
          "human_url": {
            "type": "string",
            "format": "uri"
          },
          "markdown_url": {
            "type": "string",
            "format": "uri"
          }
        }
      }
    }
  },
  "externalDocs": {
    "url": "https://docs.payments.ai",
    "description": "Product and integration documentation"
  }
}
