Skip to main content
Glama
Payware MCP Server

Payware MCP Server

Official
by payware

payware_operations_get_transaction_history

Read-onlyIdempotent

Retrieves completed transaction history with final statuses (CONFIRMED, DECLINED, FAILED, EXPIRED, CANCELLED) by transaction ID, including the delivery address needed to ship a finalized order.

Instructions

[Merchant] Get history of completed/finalized transactions with final statuses.

Endpoint: GET /transactions-history/{transactionId} Use Case: Retrieve transactions with final statuses: CONFIRMED, DECLINED, FAILED, EXPIRED, CANCELLED. Note: For ACTIVE transactions, use 'payware_operations_get_transaction_status' instead.

📦 This is where the delivery address lives. For a SHIPPABLE transaction, deliveryAddress (fullName, streetAddressLine1/2, zipCode, city, region, country, phoneNumber, email) is returned here and only here. It was removed from the finalized callback on 2026-08-07: a callback is delivered to whatever certificate the merchant's endpoint happens to present, which is an acceptable trade for a transaction id and an amount and not one for a shopper's home address. This endpoint is JWT-authenticated, tenant-scoped and runs over a verified channel. So the pattern is: the callback tells you the shipment is ready, and this call gives you the address to ship to.

⚠️ Requires Standard or Premium. This endpoint was ungated until 2026-08-21 and is now on the same plan gate as the rest of the transaction surface, so a Basic merchant - or an ISV acting on behalf of one - now gets 403. If reading history started failing without a code change, this is why. Financial institutions are unaffected; banks are always Premium.

⏱️ Rate limited, like every payware endpoint. A 429 carries ERR_RATE_LIMIT_EXCEEDED and a Retry-After header, in seconds; the request was not processed, so the identical request is safe to retry once the window passes. The failure result exposes this as error.throttled, error.retryable and error.retryAfterSeconds.

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": {
      "transactionId": "<transactionId>"
    },
    "name": "payware_operations_get_transaction_history"
  }
}

Input Schema

NameRequiredDescriptionDefault
partnerIdNoPartner ID from payware dashboard. Can use PAYWARE_PARTNER_ID env var as default.partner_12345
privateKeyNoRSA private key for JWT token creation. Can use PAYWARE_PRIVATE_KEY_PATH env var as default.
useSandboxNoUse sandbox environment for testing
transactionIdYesThe pw transaction id. History looks the id up as given, so a product, placement, soundbite or POI id is not found: use the pw id the process response returned. Up to 32 characters (identifiers may grow beyond today's 10).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.2.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them: JWT authentication, tenant scoping, a Standard/Premium plan gate that returns 403 for Basic merchants and ISVs, and a 429 contract with ERR_RATE_LIMIT_EXCEEDED, Retry-After, and the error.throttled / error.retryable / error.retryAfterSeconds fields plus the explicit statement that the request was not processed so an identical retry is safe. That is exactly the behavioral context annotations cannot carry.

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?

Structure is strong and front-loaded: purpose, endpoint, use case, exclusion note, then behavior. It is long and carries some narrative that could be trimmed (the 2026-08-07 callback-history rationale, 'banks are always Premium'), but each block conveys operationally relevant information rather than restating structured fields.

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 no output schema, the description takes on the return-value burden and does so: it enumerates the final statuses, explains that deliveryAddress (with its field list) is returned only here, and names the error fields on throttling. For a read-only, single-required-param tool this covers everything an agent needs to call it and interpret failures.

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 coverage is 100%, so the schema already documents all four parameters including the pw-id pattern and env-var defaults, which sets the baseline at 3. The description's transactionId guidance ('history looks the id up as given, so a product, placement, soundbite or POI id is not found') adds a little disambiguation but duplicates what the schema property already says about using the pw id.

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 first line gives a specific verb and resource ('Get history of completed/finalized transactions with final statuses') and backs it with the concrete endpoint GET /transactions-history/{transactionId}. It explicitly names the sibling it is not (payware_operations_get_transaction_status) for the ACTIVE case, so an agent can separate the two without opening either schema.

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?

Usage is stated both positively (retrieve transactions with CONFIRMED, DECLINED, FAILED, EXPIRED, CANCELLED) and negatively (for ACTIVE transactions use get_transaction_status instead), with the alternative named. The added plan-gate note tells the agent when a 403 will occur and why, which is a real routing/eligibility rule rather than filler.

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