Skip to content

Visits

A visit groups appointment billing state: line items, applicable payment methods, payments from money and loyalty sources, and the remaining amount_to_pay_minor.

Get the visit for an appointment

Request

Returns the billing state resolved from appointment_id: service and products, payment methods applicable to this visit, payments from money and loyalty sources, and amount_to_pay_minor. visit_id remains a response field but is not a path key because appointments without a client may not have a visit id while still being payable. The first call may materialize the billing document; repeated calls resolve to the same document.

Security
OAuth2(Required scopes: visits:read) or RestrictedKey
Path
location_idintegerrequired

Identifier of the Location. Verified against the credential on every call — a Location the credential cannot access responds with 404.

appointment_idintegerrequired

Identifier of the appointment.

Query
expand[]Array of strings

Relations to embed, one level deep. Expanding client never bypasses PII rules — contact fields are null and listed in redacted_fields without clients:read_contact. Unknown values fail with 422.

Items Value:"client"
curl -i -X GET \
  'https://developer.alteg.io/_mock/en/b2b-v3/openapi/locations/{location_id}/appointments/{appointment_id}/visit?expand%5B%5D=client' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

The visit.

Headers
RateLimit-Remaininginteger, (int32), >= 0

Requests left in the most constrained policy window that applies to this request.

RateLimit-Resetinteger, (int32), >= 0

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.

RateLimit-Policystring

Most constrained policy applied to the request, as <limit>;w=<window in seconds>.

Example:"10;w=60"
X-Request-Idstring

Request identifier for support and log correlation.

Bodyapplication/json
idintegerread-onlyrequired
objectstringread-onlyrequired
Value:"visit"
statusstringrequired

Status of the visit.

Enum:"waiting""confirmed""arrived""no_show"
itemsArray of objects(VisitItem)required
payment_methodsArray of objects(ApplicablePaymentMethod)required

Ways to pay this visit, with applicability resolved against it and identifiers sufficient for createPayment. Only instruments attached to the client appear here; a gift card or membership held by number is found with searchLoyaltyInstrument.

paymentsArray of objects(Payment)required
amount_to_pay_minorintegerread-onlyrequired

Remaining unpaid amount in integer minor units. 0 means fully paid or free.

currencystringread-onlyrequired

ISO 4217, server-controlled by the Location.

location_idintegerread-only
appointment_idsArray of integersread-only

Appointments grouped into this visit.

clientobject(Client)read-only

Present only when requested with expand[]=client; PII rules apply.

created_atstring, (date-time)read-only

UTC.

updated_atstring, (date-time)read-only

UTC.

Response
{ "id": 5001, "object": "visit", "location_id": 4321, "appointment_ids": [ 12345 ], "status": "arrived", "items": [ {} ], "payments": [ {} ], "currency": "EUR", "created_at": "2026-07-24T11:30:00Z", "updated_at": "2026-07-24T13:00:00Z", "amount_to_pay_minor": 0, "payment_methods": [ {} ] }