> ## Documentation Index
> Fetch the complete documentation index at: https://docs.natural.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> When building application code, use `@naturalpay/sdk` for TypeScript or `naturalpay` for Python.
> When operating Natural directly for a user, use the payments MCP at `https://mcp.natural.com`.
> When searching Natural documentation, use the docs MCP at `https://docs.natural.com/mcp`.
> Use the Natural CLI for terminal and CI automation.
> Use REST only for unsupported languages or when the user explicitly requests raw HTTP.
> Start integration development and testing in the sandbox. Do not use production unless the user explicitly requests it.
> For sandbox requests that require `customerPartyId`, list customers first. Reuse only the intended fixture; otherwise create a customer.
> REST and SDK amounts use integer minor units. Payments MCP amounts use decimal strings with a required currency code.

# Overview

> Inspect card payment attempts and refunds

<Note>
  Accept is in early access and subject to change. To request Accept access, contact [hi@natural.com](mailto:hi@natural.com).
</Note>

A card payment (`cpy_*`) records one attempt to pay a [payment intent](/guides/concepts/payment-intents). List attempts with `GET /card-payments`. Filter by `paymentIntentId` to follow one intent. Read an attempt with `GET /card-payments/{cardPaymentId}`. These operations require `card_payments.read`.

## Payment status

* `processing`: the outcome is not yet confirmed.
* `succeeded`: the card payment was accepted. This does not mean funds have settled.
* `failed`: the attempt ended unsuccessfully. `failure` contains the available code, reason, and advice.

`brand` and `last4` are nullable card display details. `channel` is `link` or `voice`. `receiptUrl` is nullable.

## Refunds

`refundedAmount` totals succeeded refunds. `refundableAmount` accounts for pending and succeeded refunds. Failed and processing payments have no refundable amount. Other eligibility checks can still prevent a refund.

`relationships.refunds.data` contains up to the 25 newest refund identifiers, including pending, succeeded, and failed refunds. The totals use all refunds. Use `GET /refunds?cardPaymentId=cpy_...` for the complete paginated history.

The `paymentIntent` relationship identifies the original intent. Each related resource enforces its own read permission.
