Quickstart: primeiro agendamento
Da criação do App ao primeiro Appointment no Sandbox.
Atualizado em 01/09/2026
- Tenha uma empresa Hubday no Plano Profissional ou Business.
- Abra Desenvolvedores no menu principal da Platform e crie um Developer App privado.
- Use a instalação Sandbox Development ou crie outro Sandbox dedicado à integração.
- Conceda somente os scopes necessários e gere client_id/client_secret; o secret é exibido uma única vez.
- Troque as credenciais por um access token usando OAuth 2.0 Client Credentials.
- Descubra Location, Service e Professional IDs.
- Consulte availability imediatamente antes da reserva.
- Crie o Appointment com Idempotency-Key e persista o ID retornado.
1. Emitir o access token
curl -u "$HUBDAY_CLIENT_ID:$HUBDAY_CLIENT_SECRET" \
-X POST 'https://sandbox-api.hubday.com.br/oauth2/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'scope=locations:read services:read professionals:read availability:read appointments:read appointments:write'2. Descobrir o catálogo
curl 'https://sandbox-api.hubday.com.br/v1/locations?limit=25' \
-H "Authorization: Bearer $HUBDAY_ACCESS_TOKEN"
curl 'https://sandbox-api.hubday.com.br/v1/services?locationId=$LOCATION_ID&limit=25' \
-H "Authorization: Bearer $HUBDAY_ACCESS_TOKEN"
curl 'https://sandbox-api.hubday.com.br/v1/professionals?locationId=$LOCATION_ID&serviceId=$SERVICE_ID&limit=25' \
-H "Authorization: Bearer $HUBDAY_ACCESS_TOKEN"3. Consultar disponibilidade
curl --get 'https://sandbox-api.hubday.com.br/v1/availability' \
-H "Authorization: Bearer $HUBDAY_ACCESS_TOKEN" \
--data-urlencode "locationId=$LOCATION_ID" \
--data-urlencode "serviceId=$SERVICE_ID" \
--data-urlencode "professionalId=$PROFESSIONAL_ID" \
--data-urlencode 'from=2026-09-05T08:00:00-03:00' \
--data-urlencode 'to=2026-09-06T20:00:00-03:00' \
--data-urlencode 'stepMinutes=15'4. Criar o Appointment
curl -X POST 'https://sandbox-api.hubday.com.br/v1/appointments' \
-H "Authorization: Bearer $HUBDAY_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: crm-appointment-98217' \
-d '{
"locationId": "019...",
"customer": {
"name": "Maria Silva",
"phone": "+5531999999999",
"email": "maria@example.com"
},
"items": [{
"serviceId": "019...",
"professionalId": "019...",
"startsAt": "2026-09-05T14:00:00-03:00"
}],
"notes": "Consulta de avaliação"
}'