{
  "protocolVersion": "1.0",
  "name": "Lunium",
  "description": "Settles between Brazilian PIX and stablecoins, and issues Central Bank end-to-end (E2E) receipts. One skill needs no credentials at all: lunium_verify_pix_payment proves that a PIX payment actually settled, from its E2E identifier alone — use it to check a payment a counterparty claims to have made before you release goods, credit or a next step. Every other skill needs an API key in the X-API-Key header; a test key is one call away via lunium_create_sandbox_key, with no account and no human approval.",
  "url": "https://api.luniumpay.com/a2a",
  "preferredTransport": "JSONRPC",
  "version": "1.0.0",
  "documentationUrl": "https://docs.luniumpay.com",
  "iconUrl": "https://api.luniumpay.com/favicon.png",
  "provider": {
    "organization": "Lunium (ZANQUETA INTERMED LTDA)",
    "url": "https://luniumpay.com"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "securitySchemes": {
    "apiKey": {
      "type": "apiKey",
      "in": "header",
      "name": "X-API-Key",
      "description": "Lunium API key. Omit it to use only the open skills (payment verification and sandbox key provisioning)."
    }
  },
  "security": [
    {},
    {
      "apiKey": []
    }
  ],
  "skills": [
    {
      "id": "lunium_create_sandbox_key",
      "name": "Get your own sandbox API key (no signup)",
      "description": "Provisions a Lunium TEST api key for you, in one call, with no account, no human approval and no money involved. Use it when a Lunium tool told you erro=\"chave_ausente\" and you want to explore the API yourself instead of stopping to ask your user for credentials.",
      "tags": [
        "pix",
        "brazil",
        "payments",
        "stablecoin",
        "no-auth",
        "read-only"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "lunium_verify_pix_payment",
      "name": "Verify a PIX payment (open, no API key)",
      "description": "Confirms that a specific PIX payment actually settled in Brazil, using the Central Bank end-to-end identifier (E2E). Free and open: no API key, no Lunium account. You can verify a payment you did not make, handed to you by a counterparty you have no reason to trust — that is the point of this tool.",
      "tags": [
        "pix",
        "brazil",
        "payments",
        "stablecoin",
        "no-auth",
        "read-only"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "lunium_list_settlement_options",
      "name": "List assets and networks settling now",
      "description": "Open — no API key needed, so call this first. Lists the assets and networks that can settle right now, with limits and expected timing.",
      "tags": [
        "pix",
        "brazil",
        "payments",
        "stablecoin",
        "no-auth",
        "read-only"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "lunium_check_payer_limit",
      "name": "How much this taxpayer can pay right now",
      "description": "Requires an API key. Returns how much a specific Brazilian taxpayer (CPF for a person, CNPJ for a company) can move through a PIX charge right now, in cents. Read-only — no charge is created.",
      "tags": [
        "pix",
        "brazil",
        "payments",
        "stablecoin",
        "read-only"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "lunium_get_crypto_sale",
      "name": "State and receipt of a crypto sale",
      "description": "Requires an API key. Returns the current state of a crypto sale and, once settled, the receipt: pix_e2e (Central Bank identifier), receipt_url (a page to show a person), receipt_pdf_url and verify_url (hand it to a counterparty so they can check without trusting you). All four arrive together — never construct these URLs by hand and never make a second call for them.",
      "tags": [
        "pix",
        "brazil",
        "payments",
        "stablecoin",
        "read-only"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "lunium_get_pix_charge",
      "name": "State of a PIX charge",
      "description": "Requires an API key. Returns the state of a charge created with lunium_create_pix_charge. States: pending (unpaid), under_review (PIX received, settlement in transit), paid (credited, crypto released), delayed, expired, refunded, failed.",
      "tags": [
        "pix",
        "brazil",
        "payments",
        "stablecoin",
        "read-only"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "lunium_quote_crypto_sale",
      "name": "Step 1 of 3 — price a crypto sale (commits nothing)",
      "description": "Requires an API key. Step 1 of 3 of selling crypto for reais. Prices a specific amount of a specific asset on a specific network against a specific PIX key, returning brl_amount (what the recipient receives), expires_at, an order id and a confirmation_token. No money moves and no deposit address is issued here — nothing is committed until lunium_confirm_crypto_sale.",
      "tags": [
        "pix",
        "brazil",
        "payments",
        "stablecoin",
        "read-only"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "lunium_confirm_crypto_sale",
      "name": "Step 2 of 3 — IRREVERSIBLE: lock the rate and get the deposit address",
      "description": "Requires an API key. Step 2 of 3, and the point of no return. Locks the quoted rate and returns deposit_address — the address the crypto must be sent to. Crypto arriving there will be converted and paid out to the PIX key from the quote. There is no cancel, no reversal, and no support path to undo it.",
      "tags": [
        "pix",
        "brazil",
        "payments",
        "stablecoin",
        "moves-money"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "lunium_create_pix_charge",
      "name": "IRREVERSIBLE: create a PIX charge that delivers crypto",
      "description": "Requires an API key. Creates a PIX charge: returns a QR code and a copy-and-paste string any Brazilian payer can pay from their bank app. When it is paid, crypto is delivered to payout_address. The payer's CPF or CNPJ is required — a Central Bank rule, and what identifies the charge.",
      "tags": [
        "pix",
        "brazil",
        "payments",
        "stablecoin",
        "moves-money"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ],
  "additionalInterfaces": [
    {
      "transport": "JSONRPC",
      "url": "https://api.luniumpay.com/a2a"
    },
    {
      "transport": "HTTP+JSON",
      "url": "https://api.luniumpay.com/mesh"
    }
  ],
  "meshEndpoint": "https://api.luniumpay.com/mesh"
}