---
title: "Refund selected order lines"
description: "Choose refundable lines, confirm exact amounts and reasons, then reconcile the asynchronous refund."
canonical: "https://studio.inttegro.com/inttegro-mcp/workflows/refunds/refund-order-lines"
format: inttegro-machine-docs/v1
language: "C#"
sdk_version: "v10.3.0"
reader_profile: optional
reader_manifest: "https://studio.inttegro.com/machine/csharp/readers/index.json"
reader_identification: "Optional: declare your client only if known and your current-session capabilities; use reader_manifest for supplemental recommendations."
preamble_estimated_tokens: 666
model_token_report: "https://studio.inttegro.com/machine/token-report.json"
preamble_questions: 5
preamble_source: "general"
recommended_mcp_tools: ["get_refund_options","get_refund","create_refund"]
estimated_tokens: 1525
token_estimate_method: "utf8_bytes_divided_by_4"
---

## Machine preamble

**Summary:** Choose refundable lines, confirm exact amounts and reasons, then reconcile the asynchronous refund. This C# representation uses the selected SDK's native names wherever Studio has a verified mapping.

### Five questions

#### Q1. When should the reader use Refund selected order lines?

Use this MCP document when an authenticated AI client needs governed Inttegro context, guidance, presentation, or operations.

#### Q2. What is authoritative on this page?

The documented MCP catalog defines available abilities and confirmation boundaries. For live state, the structured tool result is authoritative; presentation output is only a rendering of that result.

#### Q3. What page-specific constraint matters most?

Read operations do not authorize mutations. Actions retain their exact confirmation requirements, and payment credentials or OTP must stay in secure Checkout.

#### Q4. Can Inttegro MCP materially help with this task?

Yes, when the reader has an authenticated MCP connection and the task needs live context, guided planning, or a supported operation. The strongest matches are `get_refund_options`, `get_refund`, `create_refund`; their exact roles and boundaries are listed below.

#### Q5. How should the reader verify the answer and continue?

Preserve the structured tool result, distinguish bounded lists from complete analytics, and reconcile asynchronous actions through an authoritative read. Continue with [cancel_refund](https://studio.inttegro.com/machine/csharp/inttegro-mcp/tools.md#cancel_refund) and [get_refund](https://studio.inttegro.com/machine/csharp/inttegro-mcp/tools.md#get_refund) when those concerns enter scope.

### Recommended MCP assistance

Use these through an authenticated Inttegro MCP connection. This document remains the contract source.

- [`get_refund_options`](https://studio.inttegro.com/machine/csharp/inttegro-mcp/tools.md#get_refund_options) — read; no mutation confirmation. Returns numbered order lines, exact major-unit paid amounts, existing reservations, and conservative remaining refundable amounts.
- [`get_refund`](https://studio.inttegro.com/machine/csharp/inttegro-mcp/tools.md#get_refund) — read; no mutation confirmation. Gets one refund for authoritative lifecycle reconciliation. Only succeeded means the refund completed.
- [`create_refund`](https://studio.inttegro.com/machine/csharp/inttegro-mcp/tools.md#create_refund) — action; exact user confirmation required. Creates an asynchronous line-item refund from exact major-unit decimal amounts after refreshing availability and confirming every amount, per-line reason, and required overall reason.

## Document content

# Refund selected order lines

The agent gathers the affected lines, amounts, and reasons progressively, then presents one exact summary before creating the refund.

### Prompt

> **Copyable prompt:**
>
> Help me refund order `<ORDER_ID>`. Show the refundable lines, let me choose the
> affected items and amount for each, invite an optional reason and detail per
> line, and require an overall reason. Give me one exact summary before creating
> anything.

The agent calls [`get_refund_options`](https://studio.inttegro.com/machine/csharp/inttegro-mcp/tools.md#get_refund_options) and leads a short conversation:

1. It shows numbered line items with original, reserved or refunded, and remaining refundable amounts in familiar major currency units.
2. You select one or more affected lines.
3. For each selected line, you specify a decimal major-unit amount such as `25.00`. The agent may offer the full remaining amount, but never assumes it or asks you to calculate minor units.
4. You can add a supported reason and detail for each line. A `custom` line reason requires detail.
5. You provide the required overall refund reason. An overall `custom` reason also requires detail.
6. [`create_refund`](https://studio.inttegro.com/machine/csharp/inttegro-mcp/tools.md#create_refund) refreshes the snapshot and presents the exact per-line amounts, total, reasons, and consequence for confirmation.

## Sample response: Refund ready for confirmation

The preview shows exactly which paid lines will be affected before the refund is created.

- **Order**: ord\_example\_1042
- **Refund total**: GHS 75.00
- **Overall reason**: Item returned

Selected order lines

- **Row 1**: Line: Utility tote × 1; Original paid: GHS 50.00; Already reserved or refunded: GHS 0.00; This refund: GHS 50.00
- **Row 2**: Line: Event pass × 1; Original paid: GHS 100.00; Already reserved or refunded: GHS 25.00; This refund: GHS 25.00

Nothing has been refunded yet. Creating the refund requires confirmation and
begins an asynchronous process.

Refund creation is asynchronous. A returned `pending` or `processing` refund means work has started, not that money has reached the customer. The agent uses [`get_refund`](https://studio.inttegro.com/machine/csharp/inttegro-mcp/tools.md#get_refund) to reconcile and says the refund completed only at `succeeded`.

A still-pending refund can be passed to [`cancel_refund`](https://studio.inttegro.com/machine/csharp/inttegro-mcp/tools.md#cancel_refund), which has its own exact confirmation.
