---
title: "Take payment for an order"
description: "Choose a saved payment method or use Inttegro Checkout to pay an order securely."
canonical: "https://studio.inttegro.com/inttegro-mcp/workflows/orders/take-payment"
format: inttegro-machine-docs/v1
language: "Python"
sdk_version: "v12.0.0"
reader_profile: optional
reader_manifest: "https://studio.inttegro.com/machine/python/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: 656
model_token_report: "https://studio.inttegro.com/machine/token-report.json"
preamble_questions: 5
preamble_source: "general"
recommended_mcp_tools: ["get_order","prepare_order_payment","pay_order"]
estimated_tokens: 1417
token_estimate_method: "utf8_bytes_divided_by_4"
---

## Machine preamble

**Summary:** Choose a saved payment method or use Inttegro Checkout to pay an order securely. This Python representation uses the selected SDK's native names wherever Studio has a verified mapping.

### Five questions

#### Q1. When should the reader use Take payment for an order?

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_order`, `prepare_order_payment`, `pay_order`; 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 [get_order](https://studio.inttegro.com/machine/python/inttegro-mcp/tools.md#get_order) and [pay_order](https://studio.inttegro.com/machine/python/inttegro-mcp/tools.md#pay_order) when those concerns enter scope.

### Recommended MCP assistance

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

- [`get_order`](https://studio.inttegro.com/machine/python/inttegro-mcp/tools.md#get_order) — read; no mutation confirmation. Gets one order by ID with a minimized, contact-free projection of order, payment, and timing state.
- [`prepare_order_payment`](https://studio.inttegro.com/machine/python/inttegro-mcp/tools.md#prepare_order_payment) — read; no mutation confirmation. Returns the exact major-unit order total, only masked active payment-method choices, and a trusted secure-checkout URL without exposing payment credentials.
- [`pay_order`](https://studio.inttegro.com/machine/python/inttegro-mcp/tools.md#pay_order) — action; exact user confirmation required. Starts or deliberately retries a real payment after a masked method choice and exact confirmation. New details and OTP stay in secure Inttegro Checkout.

## Document content

# Take payment for an order

The agent can prepare and start payment, but payment credentials and OTPs always stay in Inttegro Checkout rather than the conversation.

### Prompt

> **Copyable prompt:**
>
> Take payment for order `<ORDER_ID>`. Show me the masked payment methods already
> available for its customer and let me choose one or enter a new method
> securely. State the exact amount before asking me to confirm. Never ask me for
> payment details or an OTP in chat.

The agent first calls [`prepare_order_payment`](https://studio.inttegro.com/machine/python/inttegro-mcp/tools.md#prepare_order_payment). It presents the exact total in familiar major currency units and the attached and active saved methods as numbered, masked choices.

## Sample response: Payment ready for confirmation

The customer chooses from masked methods or opens Inttegro Checkout. No credential or OTP appears in the conversation.

- **Order**: WEB-1042 — ord\_example\_1042
- **Amount**: GHS 350.00
- **Payment status**: Initiated

Available payment choices

- **Row 1**: Choice: 1; Method: MTN Mobile Money ···· 8605; Status: Verified; Next step: Confirm in chat
- **Row 2**: Choice: 2; Method: Visa ···· 4242; Status: Verified; Next step: Confirm in chat
- **Row 3**: Choice: 3; Method: New payment method; Status: Secure entry; Next step: Open Inttegro Checkout

If you choose an attached or saved method, [`pay_order`](https://studio.inttegro.com/machine/python/inttegro-mcp/tools.md#pay_order) repeats the amount and method choice before requesting confirmation and starting the payment attempt. If you choose a new method—or an attempt needs confirmation—the agent gives you the trusted Inttegro Checkout URL.

After the attempt, the agent calls [`get_order`](https://studio.inttegro.com/machine/python/inttegro-mcp/tools.md#get_order) and reports `paid` only when the authoritative payment status supports it.

An intentional retry is a fresh attempt with a new `operation_key`. A transport retry of the exact same request reuses its original key. When an outcome is unclear, the agent reconciles first instead of risking a duplicate attempt.
