Skip to main content
Glama

ebay_issue_refund

Issue full or partial refunds on eBay orders. Specify the order ID, refund amount, and reason to resolve cancellations, damages, or stock issues.

Instructions

Issue a full or partial refund for an eBay order. Use this to refund buyers for orders, including specifying the refund amount and reason.

Required OAuth Scope: sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYes
orderIdYesThe unique identifier of the order

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.14.1
    • addedInput schema / properties / body
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "comment": {
      +      "description": "Optional comment about the refund",
      +      "type": "string"
      +    },
      +    "orderLevelRefundAmount": {
      +      "$ref": "#/properties/body/properties/refundItems/items/properties/refundAmount",
      +      "description": "Order-level refund amount (for partial refunds)"
      +    },
      +    "reasonForRefund": {
      +      "description": "Reason for issuing the refund",
      +      "enum": [
      +        "BUYER_CANCEL",
      +        "OUT_OF_STOCK",
      +        "FOUND_CHEAPER_PRICE",
      +        "INCORRECT_PRICE",
      +        "ITEM_DAMAGED",
      +        "ITEM_DEFECTIVE",
      +        "LOST_IN_TRANSIT",
      +        "MUTUALLY_AGREED",
      +        "SELLER_CANCEL"
      +      ],
      +      "type": "string"
      +    },
      +    "refundItems": {
      +      "description": "Line items to refund",
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "legacyReference": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "legacyItemId": {
      +                "type": "string"
      +              },
      +              "legacyTransactionId": {
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "lineItemId": {
      +            "type": "string"
      +          },
      +          "refundAmount": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "convertedFromCurrency": {
      +                "type": "string"
      +              },
      +              "convertedFromValue": {
      +                "type": "string"
      +              },
      +              "currency": {
      +                "type": "string"
      +              },
      +              "exchangeRate": {
      +                "type": "string"
      +              },
      +              "value": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "currency",
      +              "value"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "lineItemId"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "reasonForRefund"
      +  ],
      +  "type": "object"
      +}
    • changedInput schema / properties / orderId / description
      Previous value: -"The unique eBay order ID to refund"New value: +"The unique identifier of the order"
    • removedInput schema / properties / refundData
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "Refund details including amount, reason, and optional comment. Must include reasonForRefund (required), and either refundItems (for line item refunds) OR orderLevelRefundAmount (for full order refunds).",
      -  "properties": {
      -    "comment": {
      -      "description": "Optional comment to buyer about the refund (max 100 characters)",
      -      "type": "string"
      -    },
      -    "orderLevelRefundAmount": {
      -      "additionalProperties": false,
      -      "description": "Use this to refund the entire order amount. Alternative to refundItems. Include value and currency.",
      -      "properties": {
      -        "currency": {
      -          "description": "Three-letter ISO 4217 currency code (e.g., \"USD\")",
      -          "type": "string"
      -        },
      -        "value": {
      -          "description": "The monetary amount (e.g., \"99.99\")",
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "value",
      -        "currency"
      -      ],
      -      "type": "object"
      -    },
      -    "reasonForRefund": {
      -      "description": "REQUIRED. Reason code: BUYER_CANCEL, OUT_OF_STOCK, FOUND_CHEAPER_PRICE, INCORRECT_PRICE, ITEM_DAMAGED, ITEM_DEFECTIVE, LOST_IN_TRANSIT, MUTUALLY_AGREED, SELLER_CANCEL",
      -      "type": "string"
      -    },
      -    "refundItems": {
      -      "description": "Array of individual line items to refund. Use this for partial refunds of specific items. Each item requires lineItemId and refundAmount.",
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "legacyReference": {
      -            "additionalProperties": false,
      -            "description": "Optional legacy item ID/transaction ID pair for identifying the line item",
      -            "properties": {
      -              "legacyItemId": {
      -                "type": "string"
      -              },
      -              "legacyTransactionId": {
      -                "type": "string"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "lineItemId": {
      -            "description": "The unique identifier of the order line item to refund",
      -            "type": "string"
      -          },
      -          "refundAmount": {
      -            "additionalProperties": false,
      -            "description": "The amount to refund for this line item",
      -            "properties": {
      -              "currency": {
      -                "description": "Three-letter ISO 4217 currency code (e.g., \"USD\")",
      -                "type": "string"
      -              },
      -              "value": {
      -                "description": "The monetary amount (e.g., \"25.99\")",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "value",
      -              "currency"
      -            ],
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "lineItemId"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    }
      -  },
      -  "required": [
      -    "reasonForRefund"
      -  ],
      -  "type": "object"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "orderId",
      -  "refundData"
      -]New value: +[
      +  "orderId",
      +  "body"
      +]
  2. First observedv1.8.10

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavioral aspects. It only mentions OAuth scopes, but does not disclose idempotency, failure modes, rate limits, or confirmation of issuance. Adding scope is useful but insufficient.

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?

The description is short (two sentences plus OAuth line) and front-loaded with the main purpose. It is concise but could benefit from a bit more structure (e.g., bullet points for key info).

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

Completeness2/5

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

Given the tool's complexity (nested objects, partial/full refund options) and lack of output schema or annotations, the description is incomplete. It does not explain how to specify partial vs full refund, or how to handle multiple line items. The OAuth scope is helpful but not enough.

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

Parameters2/5

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

Schema description coverage is 50%, so the description should add meaning. It mentions 'refund amount and reason' but does not elaborate on the distinction between item-level and order-level refunds, or how refundItems structure works. The schema has some descriptions, but nested objects are not clarified.

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 action ('Issue a full or partial refund') and resource ('for an eBay order'). It distinguishes this tool from siblings as there is no other refund-issuing tool in the list.

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?

The description says 'Use this to refund buyers for orders', providing clear guidance on when to use it. It does not explicitly mention when not to use, but the context is sufficient given sibling tools.

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