# Report a settlement

> Report the facilitator's settlement transaction for a completed x402 payment.

`POST /v1/agent-api/intents/{intentId}/settlement-report`

If you pay through `catena x402`, `catena mpp`, or the SDK's x402 and MPP fetch
wrappers, you don't need to call this endpoint, since they will report the
settlement for you.

## Path parameters

| Field      | Type   | Required | Description |
| ---------- | ------ | -------- | ----------- |
| `intentId` | string | Yes      |             |

## Body parameters

| Field     | Type   | Required | Description |
| --------- | ------ | -------- | ----------- |
| `txHash`  | string | Yes      |             |
| `receipt` | object |          |             |

## Responses

| Status | Description                                                                                                                                                                        |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `200`  | Settlement hint recorded. Stored as an untrusted hint only — on-chain verification remains the source of truth, and a payment with no settlement record yet still answers success. |
| `403`  | Payment intent does not belong to the calling agent                                                                                                                                |
| `404`  | Payment intent not found                                                                                                                                                           |
| `409`  | Intent is not an x402 payment                                                                                                                                                      |

## Response fields

| Field     | Type   | Required | Description |
| --------- | ------ | -------- | ----------- |
| `success` | `true` | Yes      |             |

## Example

### SDK

```ts
import { createCatenaClient } from "@catena/sdk"

// Reads CATENA_SECRET_KEY
const client = createCatenaClient()

await client.reportSettlement({
  intentId: "int_01JC3B2K7W9D4F6H8J1M3P5R7T",
  txHash: "0x8f3c2a9e1d7b4c6a5e0f9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c9b8a",
})
```

### Response `200`

```json
{
  "success": true
}
```
