# Capture

## Overview

The `capture` method finalizes an authorized payment by transferring reserved funds.

## Purpose

| Scenario               | Benefit                 |
| ---------------------- | ----------------------- |
| E-commerce fulfillment | Charge when orders ship |

## Request Fields

| Field                    | Type   | Required | Description                |
| ------------------------ | ------ | -------- | -------------------------- |
| `merchantTransactionId`  | String | Yes      | Your transaction reference |
| `connectorTransactionId` | String | Yes      | Connector's transaction ID |
| `amount`                 | Money  | No       | Amount to capture          |

## Response Fields

| Field            | Type          | Description      |
| ---------------- | ------------- | ---------------- |
| `status`         | PaymentStatus | CAPTURED, FAILED |
| `capturedAmount` | Long          | Amount captured  |

## Example

```java
Map<String, Object> request = new HashMap<>();
request.put("merchantTransactionId", "txn_001");
request.put("connectorTransactionId", "pi_xxx");
request.put("amount", Map.of("minorAmount", 1000, "currency", "USD"));

Map<String, Object> response = paymentClient.capture(request);
```

## Next Steps

* [authorize](https://docs.hyperswitch.io/integrations/prism/java/payment-service/authorize) - Create authorization
* [void](https://docs.hyperswitch.io/integrations/prism/java/payment-service/void) - Cancel authorization
