Skip to main content
Glama

ack_create_payment_receipt

Create an unsigned payment receipt as a W3C Verifiable Credential from a fulfilled payment request and payment option, then sign it with the issuer's DID and JWK to produce a verifiable JWT.

Instructions

Create an unsigned payment receipt as a W3C Verifiable Credential. The output is unsigned JSON — you must pass it to ack_sign_credential with the receipt issuer's JWK and DID to get a signed JWT, then verify it with ack_verify_payment_receipt.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
metadataNoOptional metadata about the payment
payerDidYesDID of the entity that made the payment
issuerDidYesDID of the receipt issuer (typically the payment receiver)
paymentOptionIdYesID of the payment option that was used
paymentRequestTokenYesThe original payment request JWT that was fulfilled

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the key behavior that the output is unsigned JSON, and it implies the tool does not sign or verify. It also outlines the necessary follow-up actions. However, it does not mention potential side effects, input validation, or failure modes, which would add more transparency for a creation tool.

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

Conciseness5/5

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

The description is concise, front-loaded with the core purpose, and then efficiently explains the required workflow. Every sentence adds value, and there is no redundant information.

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

Completeness4/5

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

The description is complete for the tool's role in the payment receipt lifecycle: it explains that the output is unsigned, must be signed, and then verified. It references sibling tools and gives the necessary context. However, it does not describe the exact output structure beyond 'unsigned JSON', which might be useful, but given the lack of an output schema, the description could offer a bit more detail about what the credential contains.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are already documented in the schema. The description does not add extra meaning about the parameters themselves, but it does provide context about how the parameters relate to the workflow (e.g., the issuerDid is used for signing). This is adequate given the schema's thoroughness.

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?

The description clearly states the tool's purpose: creating an unsigned payment receipt as a W3C Verifiable Credential. It distinguishes itself from sibling tools by explicitly mentioning that the output is unsigned and must be passed to ack_sign_credential, differentiating it from signing and verification tools.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: it states the output must be signed with ack_sign_credential and then verified with ack_verify_payment_receipt. This tells the agent exactly when to use this tool and what steps to take next, making the workflow clear.

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