Skip to main content
Glama
Pletopay MCP Server

Pletopay MCP Server

Official
by pletopay

Create a virtual account

create_virtual_account

Create a permanent customer account or a single-use NUBAN that routes incoming transfers into your balance, with dedicated accounts tied to a customer and dynamic accounts tied to one payment.

Instructions

Create a virtual account.

Create a virtual account (a real NUBAN that routes into your balance).

Dedicated (type: dedicated, needs customer_id): a permanent account for one customer. Every transfer into it creates a succeeded payment with source: dedicated_virtual_account, whatever the amount. Close it when you no longer want to receive money through it.

Dynamic (type: dynamic, needs amount and reference): a single-use account for one exact amount. This is the same as creating a payment with POST /api/v1/payments; the response is the account, and the payment id is in payment.

Input Schema

NameRequiredDescriptionDefault
typeYesdedicated: permanent account for a customer. dynamic: single-use account bound to one payment.
amountNoDynamic only: amount in kobo
currencyNoDynamic only
metadataNo
referenceNoDynamic only: your unique payment reference
expires_atNoDynamic only
customer_idNoCustomer id (cus_…). Required for dedicated accounts.
idempotency_keyNoOptional. A unique key for this request; retrying with the same key returns the original result instead of acting twice. One is generated if omitted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false), and the description adds real substance: dedicated accounts generate a `succeeded` payment with `source: dedicated_virtual_account` on every inbound transfer, and dynamic accounts are consumed by a single payment. It also surfaces the idempotency_key retry semantics ("retrying with the same key returns the original result"), which usefully nuances the idempotentHint=false annotation rather than contradicting it. It stops short of describing failure modes, limits, or whether created accounts can be deleted vs only closed.

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?

Front-loaded and well structured, with bolded mode labels that make scanning easy. The only waste is the opening "Create a virtual account." fragment, which restates the title and is immediately repeated by the full first sentence.

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?

With 8 parameters, a nested metadata object, conditional requirements, and no output schema, the description supplies exactly what is otherwise missing: mode-specific required fields and, for the dynamic case, what the return value contains (the account plus the payment id in `payment`). The only unchecked box is that return shape for dedicated accounts is left implicit.

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

Parameters4/5

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

Schema coverage is already high (88%), so the baseline is 3, but the description adds genuinely new constraints: it states `customer_id` is needed for dedicated and `amount` + `reference` are needed for dynamic, which the schema does not mark as conditionally required (only `type` is in the required list). That conditional-required mapping is the most valuable thing it could add, so it earns above baseline.

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

Purpose5/5

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

"Create a virtual account (a real NUBAN that routes into your balance)" states a specific verb and resource and defines the domain term inline. It then splits the tool into its two supported modes (dedicated vs dynamic) and even names the equivalent sibling endpoint (`POST /api/v1/payments`) for the dynamic case, so an agent can distinguish it from create_payment and create_customer.

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?

Clear selection guidance between the two types: dedicated is a permanent per-customer account, dynamic is a single-use account for one exact amount, and dynamic is functionally equivalent to create_payment. It also implies the closing path ("Close it when you no longer want to receive money"), pointing at close_virtual_account. No explicit exclusions or prerequisites (auth/scope, sandbox behavior) are stated, keeping it below a 5.

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

Deploy Server

Other Tools