Payments
The Payment object returned by the API and delivered on webhooks.
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
{
"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": {
"spuke_fee_eur": 132,
"spuke_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.