{
  "schema_version": "v1",
  "name": "Razorpay",
  "description": "Razorpay is an RBI-authorised full-stack payment platform for businesses in India, Malaysia (via Curlec), Singapore, and the USA. Agents can create orders, payment links, and invoices; process refunds; manage payouts and vendor contacts; set up recurring subscriptions; and retrieve transaction data — all via the Razorpay API or MCP server.",
  "url": "https://razorpay.com",
  "iconUrl": "https://razorpay.com/favicon.png",
  "version": "1.0.0",
  "documentationUrl": "https://razorpay.com/docs/",
  "serviceUrl": "https://mcp.razorpay.com/mcp",
  "capabilities": {
    "streaming": false,
    "pushNotifications": true,
    "stateTransitionHistory": false
  },
  "defaultInputModes": ["text/plain", "application/json"],
  "defaultOutputModes": ["text/plain", "application/json"],
  "authentication": [
    {
      "scheme": "Basic",
      "description": "HTTP Basic Authentication using Razorpay API keys. Set the Authorization header to 'Basic base64(key_id:key_secret)'. Generate API keys at https://dashboard.razorpay.com/app/keys. Use keys prefixed with rzp_test_ for sandbox testing — same API URL, test keys route to sandbox.",
      "credentials": "key_id:key_secret (base64-encoded)"
    },
    {
      "scheme": "OAuth2",
      "description": "OAuth 2.0 Authorization Code flow with PKCE (S256) for MCP server access at https://mcp.razorpay.com/mcp. Register a client via Dynamic Client Registration at the registration endpoint, then follow the authorization code flow. Supports grant types: authorization_code, client_credentials, refresh_token. Scope: read_only.",
      "authorizationUrl": "https://mcp.razorpay.com/authorize",
      "tokenUrl": "https://mcp.razorpay.com/token",
      "registrationUrl": "https://mcp.razorpay.com/register",
      "discoveryUrl": "https://mcp.razorpay.com/.well-known/oauth-authorization-server",
      "scopes": ["read_only"],
      "pkce": true,
      "docs": "https://razorpay.com/docs/build/llm-docs/mcp-server/oauth.md"
    }
  ],
  "skills": [
    {
      "id": "create-payment",
      "name": "Create Payment",
      "description": "Create a payment order or payment link for a specified amount and currency. Supports UPI, cards, netbanking, wallets, EMI, and 180+ payment methods. Amount must be in the smallest currency unit (paise for INR). Supports 120+ currencies for international payments.",
      "tags": ["payments", "orders", "payment-links", "upi", "international"],
      "examples": [
        "Create a payment link for ₹500",
        "Generate a payment order for 1000 INR",
        "Create a payment request and notify the customer via SMS and email",
        "Create an international payment order in USD"
      ],
      "inputModes": ["application/json"],
      "outputModes": ["application/json"]
    },
    {
      "id": "track-payment",
      "name": "Track Payment",
      "description": "Retrieve the status and details of an existing payment, order, or payment link using its ID. Supports listing with filters such as date range and count.",
      "tags": ["payments", "status", "orders"],
      "examples": [
        "What is the status of payment pay_ABC123?",
        "Check if order ord_XYZ is fully paid",
        "List all payments from the last 7 days",
        "Get details for payment link plink_123456"
      ],
      "inputModes": ["application/json"],
      "outputModes": ["application/json"]
    },
    {
      "id": "issue-refund",
      "name": "Issue Refund",
      "description": "Initiate a full or partial refund for a completed payment. Refunds are processed to the original payment method. Supports normal and optimum (instant) refund speeds.",
      "tags": ["payments", "refunds"],
      "examples": [
        "Refund payment pay_ABC123 fully",
        "Issue a partial refund of ₹200 for payment pay_XYZ",
        "Process an instant refund for my customer",
        "List all refunds for payment pay_ABC123"
      ],
      "inputModes": ["application/json"],
      "outputModes": ["application/json"]
    },
    {
      "id": "create-payout",
      "name": "Create Payout",
      "description": "Send money to a vendor, employee, or customer bank account or UPI ID via RazorpayX Payouts. Supported transfer modes: IMPS, NEFT, RTGS, UPI, Amazon Pay, and card.",
      "tags": ["payouts", "transfers", "razorpayx", "neft", "upi"],
      "examples": [
        "Pay ₹5000 to HDFC bank account via IMPS",
        "Send payout to UPI ID user@upi",
        "Transfer salary to employee bank account via NEFT",
        "Cancel a queued payout pout_ABC123"
      ],
      "inputModes": ["application/json"],
      "outputModes": ["application/json"]
    },
    {
      "id": "manage-contacts",
      "name": "Manage Contacts and Fund Accounts",
      "description": "Create and manage vendor, employee, or customer contacts in RazorpayX. Link bank accounts or UPI IDs to contacts as fund accounts for payouts.",
      "tags": ["contacts", "fund-accounts", "razorpayx", "vendors", "employees"],
      "examples": [
        "Create a vendor contact for Acme Corp",
        "Link HDFC bank account to contact cont_ABC123",
        "Add UPI ID vendor@upi as a fund account",
        "Create an employee contact for payroll payout"
      ],
      "inputModes": ["application/json"],
      "outputModes": ["application/json"]
    },
    {
      "id": "create-invoice",
      "name": "Create Invoice",
      "description": "Generate a GST-compliant invoice with line items and optionally send it to a customer via email or SMS. Supports cancellation of unpaid invoices.",
      "tags": ["invoices", "billing", "GST"],
      "examples": [
        "Create an invoice for ₹10,000 for Acme Corp",
        "Generate a GST invoice and send it to customer@email.com",
        "Cancel unpaid invoice inv_ABC123",
        "Fetch invoice inv_XYZ and check its status"
      ],
      "inputModes": ["application/json"],
      "outputModes": ["application/json"]
    },
    {
      "id": "manage-subscriptions",
      "name": "Manage Subscriptions",
      "description": "Create subscription plans and manage recurring billing. Subscribe customers to plans with configurable billing intervals (daily, weekly, monthly, yearly). Handle cancellations and track recurring charge events.",
      "tags": ["subscriptions", "recurring", "billing", "plans"],
      "examples": [
        "Create a monthly subscription plan for ₹999",
        "Subscribe customer to the pro plan for 12 billing cycles",
        "Cancel subscription sub_XYZ",
        "Fetch the current status of subscription sub_ABC123"
      ],
      "inputModes": ["application/json"],
      "outputModes": ["application/json"]
    },
    {
      "id": "webhook-events",
      "name": "Webhook Event Reference",
      "description": "Razorpay sends real-time webhook events to your configured endpoint for payment, refund, payout, subscription, and invoice state changes. Webhooks are configured in the Razorpay Dashboard (Settings → Webhooks). Verify incoming events using HMAC-SHA256 of the request body with your webhook secret, compared against the X-Razorpay-Signature header.",
      "tags": ["webhooks", "events", "notifications"],
      "examples": [
        "What events does Razorpay emit when a payment succeeds?",
        "How do I verify an incoming Razorpay webhook?",
        "What webhook event fires when a subscription charge is collected?",
        "Which events should I listen to for payout status updates?"
      ],
      "inputModes": ["application/json"],
      "outputModes": ["application/json"]
    }
  ],
  "provider": {
    "organization": "Razorpay Software Private Limited",
    "url": "https://razorpay.com"
  }
}
