Skip to main content
Glama

paywall__payment_card_link

Returns a single-use hosted card-payment link for the customer's linked Netfluid wallet. Hand values.link to the customer: it opens a hosted page where they pay by card (new card with 3D Secure). Card details are entered on the hosted page only, never in chat. The link dies the moment the payment completes and expires after ttl_s (default 24h). The card fee is added ON TOP for the payer: values.card_charge_total is what they pay, values.wallet_credit is what lands in the wallet (the full amount — quote the exact price). The funds remain in the Netfluid account until wallet_transfer. Amount must be 10-100000 ZAR and the wallet must be KYC verified. The reference doubles as an idempotency key: reusing it while the payment is open returns the same link (values.reused=1) — never mint a second link for the same unpaid invoice. @param identifier: The customer unique identifier, typically the chat mobile number @param pin: The customer's linked Netfluid payment wallet PIN, 5 digits @param amount: The amount in ZAR the wallet should receive, between 10 and 100000 @param description: Shown to the payer on the hosted page, max 100 characters @param reference: Your own reference / idempotency key, max 100 characters (e.g. "invoice 593") @param keep_card: '1' keeps the newly tokenised card for future instant charges, default '0' @param ttl_s: Link lifetime in seconds, default 86400, clamped 300-86400 @return: a json object with values.link (send this to the customer), values.wallet_credit, values.card_charge_total and values.expires_at, in the "values" object

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "identifier": "<identifier>",
      "pin": "<pin>",
      "amount": "<amount>"
    },
    "name": "paywall__payment_card_link"
  }
}

Input Schema

NameRequiredDescriptionDefault
pinYes
ttl_sNo
amountYes
keep_cardNo0
referenceNo
identifierYes
descriptionNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "type": "object"
      +}
  2. Added

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly: link dies on completion, expires after ttl_s, card fee is added on top for the payer, funds stay in the Netfluid account until wallet_transfer, and the reference doubles as an idempotency key returning values.reused=1. It also discloses the security constraint that card details are entered on the hosted page only, never in chat.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is front-loaded: what the tool returns, what to do with the link, then money semantics, then constraints, then parameters. It is dense but nearly every sentence carries decision-relevant information; the money paragraph is slightly run-on and could be split for scanability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter financial write tool with no annotations, the description covers the return values even though an output schema exists (values.link, wallet_credit, card_charge_total, expires_at), plus fee model, idempotency, limits, KYC prerequisite, and the downstream wallet_transfer step. Nothing an agent needs to call this safely and correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it documents all seven parameters via @param tags with formats and defaults (PIN is 5 digits, description max 100 chars, ttl_s default 86400 clamped 300-86400, keep_card '1'/'0'). It also resolves the misleading schema default of ttl_s=0 by explaining the real default and clamping range.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a specific verb and resource: it returns a single-use hosted card-payment link for a customer's linked Netfluid wallet. It also distinguishes the mechanism ('hosted page where they pay by card (new card with 3D Secure)'), which separates it from sibling payment paths like payment_payat_link or wallet_visa_mastercard_recharge, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Strong operational guidance: hand values.link to the customer, never mint a second link for the same unpaid invoice, quote the exact price, amount must be 10-100000 ZAR, and the wallet must be KYC verified. It does not, however, explicitly route the agent to a sibling tool when the customer needs a different payment method (e.g. Payat, 3D Secure link, or card recharge).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources