# Payments

The Payment object returned by the API and delivered on webhooks.

> **Payments are not a standalone REST resource.** There is no `GET /v1/payments` in the Merchant API — payment data reaches you through Checkout Session responses and webhooks. Installed marketplace apps can read payments through the App API (`GET /v1/app/payments`).

# Payments

A **Payment** represents a single money movement from a customer to a merchant. It is created automatically when a **Checkout Session** completes or an **Invoice** is paid — you don't create it directly.

## The Payment object

```json
{
  "id": "py_01H…",
  "object": "payment",
  "session_id": "cs_01H…",
  "invoice_id": null,
  "amount": 4990,
  "amount_refunded": 0,
  "currency": "EUR",
  "status": "succeeded",
  "payment_method": "visa_mc",
  "card": { "brand": "visa", "last4": "4242", "country": "DE", "funding": "credit" },
  "fee": {
    "southbill_fee_eur": 132,
    "southbill_fee_charge_currency": 132,
    "psp_fee_eur": 189,
    "currency": "EUR"
  },
  "customer": { "name": "Jane Doe", "email": "jane@example.com" },
  "reference": "ORDER-12345",
  "metadata": {},
  "created": 1735689600
}
```

### Status values

| Status | Meaning |
|---|---|
| `succeeded` | Money captured, fee deducted. |
| `processing` | Async method (SEPA, Klarna) still clearing. |
| `refunded` | Fully refunded. |
| `partially_refunded` | Partial refund issued. |
| `disputed` | Chargeback opened. |
| `failed` | Attempt failed. |

## Retrieval

Fetch the parent session/invoice — the payment is embedded in its response:

```
GET /v1/checkout/sessions/{id}
```

A dedicated `GET /v1/payments/{id}` endpoint is planned for the next API release.

## Currency & fees

Every fee is computed in EUR against your plan's rate for the actual card region and payment method, then converted back to the charge currency. See **Fees, currency & minimum amounts**.

