- Record a payment on the appointment's visit
Records a money, deposit, loyalty, gift card, membership, or referral-program payment against the visit resolved from appointment_id. This records that payment was received (cash, card terminal, cashless, or a loyalty instrument) — Altegio does not move funds through a payment provider on this call. amount_minor must not exceed amount_to_pay_minor; for membership, amount_minor is 0 and coverage is reported through covers_items. Gift card and membership addressed by number use the same anti-enumeration policy as searchLoyaltyInstrument (422 instrument_not_applicable, shared rate limit). Requires Idempotency-Key; a retry returns the original payment instead of recording it twice. A free visit (amount_to_pay_minor is 0) needs no payment; finalize it through setAppointmentStatus.
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
- Preview resource API contract - endpoint surface is not live yethttps://api.alteg.io/api/v3/locations/{location_id}/appointments/{appointment_id}/payments
- OAuth2
- RestrictedKey
- payment_method
- account
- deposit
- loyalty_card
- loyalty_program
- gift_card
- membership
- referral_program
- Card payment via a configured method
- Direct payment to an account
- Spend a membership session (no amount - sessions, not money)
- Spend a membership that carries no code
- Part of the amount from the client's deposit
- Apply one of the referral programs the client is eligible for
curl -i -X POST \
'https://developer.alteg.io/_mock/en/b2b-v3/openapi/locations/{location_id}/appointments/{appointment_id}/payments' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: string' \
-d '{
"type": "payment_method",
"payment_method_id": 71,
"account_id": 13,
"amount_minor": 250000,
"card_brand_id": 1
}'The registered payment.
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": "completed", "covers_items": [], "refund": null, "created_at": "2026-07-24T13:00:00Z" }