Skip to main content
Glama

Payment Status Codes and Stuck-Payment Playbooks

gpi_status_codes
Read-only

Explain SWIFT GPI tracking status codes and provide stuck-payment investigation guidance.

USE THIS TOOL FIRST whenever the user reports a payment that is stuck, delayed, not arriving, held, pending, rejected, or otherwise not behaving as expected. It is the primary diagnostic entrypoint for payment investigation — calling with a specific code returns a full investigation playbook (common delay causes, recommended actions, GPI SLA timeframes, escalation steps).

Recommended calls by scenario:

  • Payment "stuck" / "in progress" / "pending" / "not arrived": gpi_status_codes("ACSP") → playbook for in-progress payments

  • Payment explicitly "on hold" / compliance review: gpi_status_codes("PDNG") → playbook for held payments

  • Payment "blocked" / sanctions flag: gpi_status_codes("BLCK") → playbook for blocked payments

  • Payment rejected by a bank in the chain (never credited): gpi_status_codes("RJCT") → rejection investigation playbook

  • Payment returned to sender (accepted then sent back): gpi_status_codes("RTRN") → return investigation playbook

  • Reference for ISO 20022 codes: gpi_status_codes() → list all codes

Each code call returns:

  • Code description and meaning

  • For ACSP/PDNG/BLCK/RJCT/RTRN: investigation playbook with common causes, recommended actions (request gCCT tracker, request pacs.002/pacs.004 reason code, verify beneficiary details, escalate via MT199, etc.), and common ISO 20022 reason codes (AC01, AC04, AG01, RR01-RR04, etc.) when applicable

  • Child reason codes (e.g., G001-G004 for ACSP) that narrow the cause further

Common codes: ACCC (success), ACSP (in progress), RJCT (rejected), PDNG (on hold), BLCK (blocked). GPI reason codes (G000-G004) qualify ACSP with more detail (e.g. G001 = passed on to a bank that is not a gpi member, G002 = credit pending, may not be same day).

Examples: gpi_status_codes("ACSP") # stuck-payment diagnostic playbook gpi_status_codes("G001") # detail on a specific reason code gpi_status_codes() # full reference list

Input Schema

NameRequiredDescriptionDefault
codeNoOptional ISO 20022 status code (ACSP, ACCC, PDNG, RJCT, RTRN, BLCK) or reason code (e.g. G001), case-insensitive. A status code returns its investigation playbook. Omit it to list every code.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / code / description
      Added value: +"Optional ISO 20022 status code (ACSP, ACCC, PDNG, RJCT, RTRN, BLCK) or reason code (e.g. G001), case-insensitive. A status code returns its investigation playbook. Omit it to list every code."
  2. Changed1 schema field changed
    • addedOutput schema / description
      Added value: +"Generic wrapper for non-object return types."
  3. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description goes further by disclosing the shape of the response: playbook contents (common causes, recommended actions, SLA timeframes, escalation steps, ISO 20022 reason codes) and child reason-code expansion for ACSP. It does not mention any caching, rate limits, or staleness of the reference data, but for a read-only lookup this is a minor gap.

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 with the primary directive and organized as a scenario→code routing table, which is highly scannable. It does carry some redundancy: the closing 'Examples' block largely restates the scenario mappings already given above, and the 'Common codes' paragraph overlaps the earlier per-code descriptions, adding length without new information.

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?

An output schema exists so return values need not be explained, yet the description helpfully characterizes them anyway. For a single optional-parameter reference/diagnostic tool, everything an agent needs to select and invoke it correctly — entrypoint priority, scenario routing, and code vocabulary — is present and unambiguous.

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 100%, so the schema already documents the single optional 'code' parameter including case-insensitivity and the omit-to-list behavior. The description adds genuine semantics beyond that by mapping concrete real-world symptoms to recommended code values and noting that a code returns its playbook while a reason code (G001) yields narrower detail. This exceeds the baseline 3 for fully-covered schemas.

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 names two concrete capabilities with specific resources: explaining SWIFT GPI status/reason codes and returning stuck-payment investigation playbooks. It is clearly distinguishable from siblings like track_payment and tracking_history, which fetch payment state rather than interpret codes. An agent knows exactly what this tool produces without opening the 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?

It explicitly instructs 'USE THIS TOOL FIRST' for the entire family of stuck/delayed/rejected/pending symptoms, then maps each user-reported scenario to a specific code argument (ACSP, PDNG, BLCK, RJCT, RTRN) and reserves the no-arg call for reference listing. When-to-use, when-to-omit, and the routing logic are all explicit.

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