Locally reverses one payment action in full for the visit resolved from appointment_id. Partial reversal is not part of the contract. This is a local cancellation of posting in Altegio, not a payment-provider refund. Requires Idempotency-Key.
No step-up confirmation is part of this preview contract. Refund authorization is the explicit payments:refund scope plus the subject's finance permission, with idempotency and audit on every call. A future human-confirmation flow will be added only with a complete challenge contract.
Client-generated unique key for this logical request (UUID recommended). A retry with the same key and body returns the original result; the same key with a different body fails with 409 idempotency_key_reused. Keys are retained at least 24 hours and are scoped to credential, Location, and operation; after expiry the value may be reused for a new logical request.
- Mock serverhttps://developer.alteg.io/_mock/en/b2b-v3/openapi/locations/{location_id}/appointments/{appointment_id}/payments/{payment_id}/refund
- Preview resource API contract - endpoint surface is not live yethttps://api.alteg.io/api/v3/locations/{location_id}/appointments/{appointment_id}/payments/{payment_id}/refund
- OAuth2
- RestrictedKey
curl -i -X POST \
'https://developer.alteg.io/_mock/en/b2b-v3/openapi/locations/{location_id}/appointments/{appointment_id}/payments/{payment_id}/refund' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Idempotency-Key: string'The payment after local reversal.
Requests left in the most constrained policy window that applies to this request.
On 429, seconds until the most constrained policy frees up; it equals Retry-After there. On a successful response it reports the length of that policy's window rather than the time left in the current one, so treat it as the window size, not as a countdown — the counter to pace against is RateLimit-Remaining.
Most constrained policy applied to the request, as <limit>;w=<window in seconds>.
membership_auto and prepaid_hold are read-only and never accepted by PaymentCreate.
Payment amount in minor units. For membership, this is 0; covered items are listed in covers_items.
Acquiring fee represented inside the payment; it is not exposed as a separate payment.
- Refund
- null
{ "id": "t9001", "object": "payment", "visit_id": 5001, "type": "payment_method", "payment_method_id": 71, "account_id": 13, "amount_minor": 250000, "fee_minor": 2500, "currency": "EUR", "card_brand_id": 1, "installment_count": null, "status": "refunded", "covers_items": [], "refund": { "id": "t9001", "object": "refund", "payment_id": "t9001", "amount_minor": 250000, "created_at": "2026-07-24T14:10:00Z" }, "created_at": "2026-07-24T13:00:00Z" }