{"name":"com.tgpaybot/merchant-api","slug":"tgpaybot-merchant-api","title":"TgPay Merchant API","description":"Accept crypto payments via the TgPay Merchant API — invoices, subscriptions, webhooks.","url":"https://mcp.market/server/tgpaybot-merchant-api","rating":null,"grade":"C","score":63,"certified":false,"status":"active","category":"finance","tags":["finance"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":6,"ok":6,"last_checked_at":"2026-09-20T20:56:22.121Z","last_ok_at":"2026-09-20T20:56:22.121Z","latency_ms":621},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://app.tgpaycrypto.com/mcp","version":"1.0.2","remotes":[{"type":"streamable-http","url":"https://app.tgpaycrypto.com/mcp","headers":[{"description":"Merchant API token. Optional — without it the connect tool issues a scoped token after one-tap approval in the TgPay Telegram bot.","isSecret":true,"name":"TgPayCrypto-API-Token"}]}],"packages":[],"tools":[{"name":"archiveSubscriptionPlan","description":"Stop new signups for a plan (live subscriptions keep renewing).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"plan_id":{"type":"integer","description":"The plan to archive."}},"required":["plan_id"]}},{"name":"cancelSubscription","description":"Stop future charges for one subscription (paid time runs out).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"subscription_id":{"type":"integer","description":"The subscription."}},"required":["subscription_id"]}},{"name":"connect","description":"Start token issuance WITHOUT the Mini App UI: creates a merchant-app request and returns a t.me approve link plus a poll_secret. Show the link to the human — they approve with one button in the @tgpaycryptobot bot — then call connect_status with the poll_secret. Use only when no API token is configured yet.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app_name":{"type":"string","description":"Merchant app name shown to the approving human, 1-64 chars (e.g. the project/bot name)."}},"required":["app_name"]}},{"name":"connect_status","description":"Poll a connect request. Returns pending | denied | expired, or — once approved — the app id and the API TOKEN (returned exactly once: save it to the project's .env immediately, never print it in logs). The token is SCOPED (read, invoices, subscriptions, webhooks) — it cannot move money out of the app; transfers/refunds/checks need the primary token the human holds in the Mini App. Poll every 3-5 seconds while pending.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"poll_secret":{"type":"string","description":"The poll_secret from the connect tool."}},"required":["poll_secret"]}},{"name":"createInvoice","description":"Create a one-off payment invoice; the payer opens result.mini_app_invoice_url. See the invoices doc.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"currency_type":{"type":"string","description":"crypto (default) | fiat."},"asset":{"type":"string","description":"Asset code (crypto mode)."},"amount":{"type":"string","description":"Decimal string in MAJOR units, e.g. \"5\" = 5 USDT. Never a float. Omit for an open-amount invoice."},"fiat":{"type":"string","description":"Fiat code (fiat mode)."},"accepted_assets":{"type":"string","description":"Fiat mode: comma-separated assets the payer may pay in."},"rate_lock_seconds":{"type":"integer","description":"Fiat mode: freeze crypto quotes for this long."},"description":{"type":"string","description":"Shown to the payer (≤1024)."},"hidden_message":{"type":"string","description":"Revealed to the payer ONLY after payment (≤2048)."},"payload":{"type":"string","description":"Opaque data echoed back in the webhook (≤4096)."},"paid_btn_name":{"type":"string","description":"viewItem | openChannel | openBot | callback."},"paid_btn_url":{"type":"string","description":"URL for the paid button."},"allow_comments":{"type":"boolean","description":"Default true."},"allow_anonymous":{"type":"boolean","description":"Default true."},"expires_in":{"type":"integer","description":"Invoice TTL in seconds."},"swap_to":{"type":"string","description":"Auto-convert the received amount to this asset."}}}},{"name":"createSubscriptionPlan","description":"Create an IMMUTABLE recurring-billing plan; send payers to result.mini_app_subscribe_url. See the subscriptions doc.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Plan name shown to payers (≤64)."},"asset":{"type":"string","description":"Asset code, e.g. USDT."},"amount":{"type":"string","description":"Decimal string in MAJOR units, e.g. \"5\" = 5 USDT. Never a float. Charged per period."},"period_days":{"type":"integer","description":"Billing period in days."}},"required":["name","asset","amount","period_days"]}},{"name":"deleteCheck","description":"Delete an unclaimed check (refunds the hold).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"check_id":{"type":"integer","description":"The check to delete."}},"required":["check_id"]}},{"name":"deleteInvoice","description":"Delete an unpaid invoice.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"invoice_id":{"type":"integer","description":"The invoice to delete."}},"required":["invoice_id"]}},{"name":"getBalance","description":"Merchant app balance per asset (available + onhold).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"getChecks","description":"List checks.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"asset":{"type":"string","description":"Filter by asset code."},"check_ids":{"type":"string","description":"Comma-separated ids."},"status":{"type":"string","description":"active | activated."},"offset":{"type":"integer","description":"Skip this many."},"count":{"type":"integer","description":"Page size (default 100)."}}}},{"name":"getCurrencies","description":"Supported crypto assets (code/name/decimals) and fiats.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"getExchangeRates","description":"Current asset↔fiat display rates.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"getInvoices","description":"List invoices (newest first).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"asset":{"type":"string","description":"Filter by asset code."},"fiat":{"type":"string","description":"Filter by fiat code."},"invoice_ids":{"type":"string","description":"Comma-separated ids."},"status":{"type":"string","description":"active | paid | expired."},"offset":{"type":"integer","description":"Skip this many."},"count":{"type":"integer","description":"Page size (default 100)."}}}},{"name":"getMe","description":"Verify the token: app id, name, webhook config, token scopes.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"getStats","description":"App volume/count stats for a period.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"start_at":{"type":"string","description":"ISO 8601 period start."},"end_at":{"type":"string","description":"ISO 8601 period end."}}}},{"name":"getSubscriptionPlans","description":"List subscription plans.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"getSubscriptions","description":"List subscriptions (subscribers).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"plan_id":{"type":"integer","description":"Filter by plan."},"user_id":{"type":"integer","description":"Filter by Telegram user id."},"status":{"type":"string","description":"active | grace | cancelled | expired."}}}},{"name":"getTransfers","description":"List app→user transfers.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"asset":{"type":"string","description":"Filter by asset code."},"transfer_ids":{"type":"string","description":"Comma-separated ids."},"spend_id":{"type":"string","description":"Filter by idempotency key."},"offset":{"type":"integer","description":"Skip this many."},"count":{"type":"integer","description":"Page size (default 100)."}}}},{"name":"get_docs","description":"Read a TgPay Merchant API integration doc. START HERE before integrating: topics quickstart, invoices, subscriptions, transfers-checks, webhooks, errors.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"topic":{"type":"string","description":"quickstart | invoices | subscriptions | transfers-checks | webhooks | errors"}},"required":["topic"]}},{"name":"updateApp","description":"Update app name / webhook_url (https) / webhook_events opt-in list. Needs the 'webhooks' scope (the connect-issued token has it) or the primary token. See the webhooks doc for the event types and signature verification.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"New app name (1-64)."},"webhook_url":{"type":"string","description":"https URL for webhook delivery; \"\" clears it."},"webhook_events":{"type":"array","description":"Extended event types to opt into (invoice_paid is always delivered); [] = invoice_paid-only.","items":{"type":"string","description":"Event type."}}}}}],"scan":{"score":63,"grade":"C","scanned_at":"2026-09-20T00:26:16.677Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:26:16.686Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2393ms"]},"poisoning":{"score":15,"max":15,"notes":["20 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://app.tgpaycrypto.com/mcp","reachable":true,"authRequired":false,"latencyMs":2393,"serverInfo":{"name":"tgpay","version":"d0ee41ae"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://tgpaycrypto.com/favicon.ico","source":"site","width":48,"height":48},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}