accueil / serveurs / Finance & Paiement / com.tgpaybot/merchant-api
com.tgpaybot/merchant-api
serveur MCP (Model Context Protocol) · tgpay 44754929
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que com.tgpaybot/merchant-api est sûr ?
Au dernier audit MCP Hub, le serveur MCP « com.tgpaybot/merchant-api » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 20 outils
- archiveSubscriptionPlan≈ 82 tokens
Stop new signups for a plan (live subscriptions keep renewing).
Paramètres, retour & exemple (1)
Paramètresplan_id· integer · requis
The plan to archive.
Exemple d'appel{"name": "archiveSubscriptionPlan", "arguments": {"plan_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - cancelSubscription≈ 84 tokens
Stop future charges for one subscription (paid time runs out).
Paramètres, retour & exemple (1)
Paramètressubscription_id· integer · requis
The subscription.
Exemple d'appel{"name": "cancelSubscription", "arguments": {"subscription_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - connect≈ 157 tokens
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.
Paramètres, retour & exemple (1)
Paramètresapp_name· string · requis
Merchant app name shown to the approving human, 1-64 chars (e.g. the project/bot name).
Exemple d'appel{"name": "connect", "arguments": {"app_name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - connect_status≈ 176 tokens
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.
Paramètres, retour & exemple (1)
Paramètrespoll_secret· string · requis
The poll_secret from the connect tool.
Exemple d'appel{"name": "connect_status", "arguments": {"poll_secret": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - createInvoice≈ 408 tokens
Create a one-off payment invoice; the payer opens result.mini_app_invoice_url. See the invoices doc.
Paramètres, retour & exemple (15)
Paramètresfiat· string · optionnel
Fiat code (fiat mode).asset· string · optionnel
Asset code (crypto mode).amount· string · optionnel
Decimal string in MAJOR units, e.g. "5" = 5 USDT. Never a float. Omit for an open-amount invoice.payload· string · optionnel
Opaque data echoed back in the webhook (≤4096).swap_to· string · optionnel
Auto-convert the received amount to this asset.expires_in· integer · optionnel
Invoice TTL in seconds.description· string · optionnel
Shown to the payer (≤1024).paid_btn_url· string · optionnel
URL for the paid button.currency_type· string · optionnel
crypto (default) | fiat.paid_btn_name· string · optionnel
viewItem | openChannel | openBot | callback.allow_comments· boolean · optionnel
Default true.hidden_message· string · optionnel
Revealed to the payer ONLY after payment (≤2048).accepted_assets· string · optionnel
Fiat mode: comma-separated assets the payer may pay in.allow_anonymous· boolean · optionnel
Default true.rate_lock_seconds· integer · optionnel
Fiat mode: freeze crypto quotes for this long.
Exemple d'appel{"name": "createInvoice", "arguments": {"fiat": "texte", "asset": "texte", "amount": "texte", "payload": "texte", "swap_to": "texte", "expires_in": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - createSubscriptionPlan≈ 176 tokens
Create an IMMUTABLE recurring-billing plan; send payers to result.mini_app_subscribe_url. See the subscriptions doc.
Paramètres, retour & exemple (4)
Paramètresname· string · requis
Plan name shown to payers (≤64).asset· string · requis
Asset code, e.g. USDT.amount· string · requis
Decimal string in MAJOR units, e.g. "5" = 5 USDT. Never a float. Charged per period.period_days· integer · requis
Billing period in days.
Exemple d'appel{"name": "createSubscriptionPlan", "arguments": {"name": "texte", "asset": "texte", "amount": "texte", "period_days": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - deleteCheck≈ 75 tokens
Delete an unclaimed check (refunds the hold).
Paramètres, retour & exemple (1)
Paramètrescheck_id· integer · requis
The check to delete.
Exemple d'appel{"name": "deleteCheck", "arguments": {"check_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - deleteInvoice≈ 72 tokens
Delete an unpaid invoice.
Paramètres, retour & exemple (1)
Paramètresinvoice_id· integer · requis
The invoice to delete.
Exemple d'appel{"name": "deleteInvoice", "arguments": {"invoice_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - getBalance≈ 53 tokens
Merchant app balance per asset (available + onhold).
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "getBalance", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - getChecks≈ 129 tokens
List checks.
Paramètres, retour & exemple (5)
Paramètresasset· string · optionnel
Filter by asset code.count· integer · optionnel
Page size (default 100).offset· integer · optionnel
Skip this many.status· string · optionnel
active | activated.check_ids· string · optionnel
Comma-separated ids.
Exemple d'appel{"name": "getChecks", "arguments": {"asset": "texte", "count": 1, "offset": 1, "status": "texte", "check_ids": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - getCurrencies≈ 54 tokens
Supported crypto assets (code/name/decimals) and fiats.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "getCurrencies", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - getExchangeRates≈ 50 tokens
Current asset↔fiat display rates.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "getExchangeRates", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - getInvoices≈ 152 tokens
List invoices (newest first).
Paramètres, retour & exemple (6)
Paramètresfiat· string · optionnel
Filter by fiat code.asset· string · optionnel
Filter by asset code.count· integer · optionnel
Page size (default 100).offset· integer · optionnel
Skip this many.status· string · optionnel
active | paid | expired.invoice_ids· string · optionnel
Comma-separated ids.
Exemple d'appel{"name": "getInvoices", "arguments": {"fiat": "texte", "asset": "texte", "count": 1, "offset": 1, "status": "texte", "invoice_ids": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - getMe≈ 54 tokens
Verify the token: app id, name, webhook config, token scopes.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "getMe", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - getStats≈ 83 tokens
App volume/count stats for a period.
Paramètres, retour & exemple (2)
Paramètresend_at· string · optionnel
ISO 8601 period end.start_at· string · optionnel
ISO 8601 period start.
Exemple d'appel{"name": "getStats", "arguments": {"end_at": "texte", "start_at": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - getSubscriptionPlans≈ 48 tokens
List subscription plans.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "getSubscriptionPlans", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - getSubscriptions≈ 106 tokens
List subscriptions (subscribers).
Paramètres, retour & exemple (3)
Paramètresstatus· string · optionnel
active | grace | cancelled | expired.plan_id· integer · optionnel
Filter by plan.user_id· integer · optionnel
Filter by Telegram user id.
Exemple d'appel{"name": "getSubscriptions", "arguments": {"status": "texte", "plan_id": 1, "user_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - getTransfers≈ 136 tokens
List app→user transfers.
Paramètres, retour & exemple (5)
Paramètresasset· string · optionnel
Filter by asset code.count· integer · optionnel
Page size (default 100).offset· integer · optionnel
Skip this many.spend_id· string · optionnel
Filter by idempotency key.transfer_ids· string · optionnel
Comma-separated ids.
Exemple d'appel{"name": "getTransfers", "arguments": {"asset": "texte", "count": 1, "offset": 1, "spend_id": "texte", "transfer_ids": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_docs≈ 114 tokens
Read a TgPay Merchant API integration doc. START HERE before integrating: topics quickstart, invoices, subscriptions, transfers-checks, webhooks, errors.
Paramètres, retour & exemple (1)
Paramètrestopic· string · requis
quickstart | invoices | subscriptions | transfers-checks | webhooks | errors
Exemple d'appel{"name": "get_docs", "arguments": {"topic": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - updateApp≈ 188 tokens
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.
Paramètres, retour & exemple (3)
Paramètresname· string · optionnel
New app name (1-64).webhook_url· string · optionnel
https URL for webhook delivery; "" clears it.webhook_events· array · optionnel
Extended event types to opt into (invoice_paid is always delivered); [] = invoice_paid-only.
Exemple d'appel{"name": "updateApp", "arguments": {"name": "texte", "webhook_url": "texte", "webhook_events": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».