Versão: 1.0
Última atualização: Junho 2026
Suporte: suporte@ayrton.net.br
Visão Geral
API de integração do Ayrton Hostay para gestão de reservas, disponibilidade, calendário de preços, conversas com hóspedes, pagamentos e governança.
⚠️ Confidencialidade: Esta API é confidencial e não deve ser compartilhada com terceiros sem autorização prévia. Todos os direitos reservados à Ayrton Hostay.
Autenticação
Cada requisição deve incluir dois headers obrigatórios:
Header | Descrição | Exemplo |
authorization | API Key emitida pelo Ayrton Hostay | 9fddc509-445c-4900-... |
x-hotel | ID numérico do hotel | 214512... |
Ambiente de testes: Utiliza autenticação via JWT Bearer Token pelo header Authorization: Bearer <token>.
Servidores
Ambiente | URL |
Produção | |
Staging / Testes (JWT) | |
SwaggerHub Mock |
Rate Limits
Limite | Valor |
Chamadas por minuto | 3 |
Chamadas por segundo | 0.05 |
Exceder o limite retorna HTTP 429 – Too Many Requests.
Formato de Resposta de Erro
Todas as respostas de erro seguem este formato padrão:
{ "statusCode": 400, "message": "Descrição do erro", "error": "Bad Request" }Códigos de erro comuns
Código | Descrição |
400 | Dados da requisição inválidos |
401 | API key ausente ou inválida |
404 | Recurso não encontrado |
413 | Arquivo muito grande |
429 | Limite de requisições excedido |
500 | Erro interno do servidor |
📋 Reservas
GET /booking/{resid}
Obter detalhes completos de uma reserva
Retorna todos os detalhes de uma reserva incluindo status, dados do hóspede, quartos, faturamento e origem.
Parâmetros
Nome | resid |
Em | path |
Obrigatório | ✅ |
Tipo | string |
Descrição | ID único da reserva |
Curl
curl -X 'GET' \ 'https://api.ayrton.net.br/open-api/booking/68' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID'
Resposta 200 — Sucesso
{ "id": 522, "status": "cancelled", "checkIn": "2026-03-17", "checkOut": "2026-03-19", "numberOfAdults": 1, "numberOfChildren": 0, "numberOfInfants": 0, "prices": [ { "date": "2026-03-17", "value": 0, "ratePlan": null }, { "date": "2026-03-18", "value": 0, "ratePlan": null } ], "bill": [ { "id": 573, "name": "Conta Hóspede", "closed": false, "chargeRates": true, "posClosed": false, "createdOn": "2026-02-28T15:29:26.082Z", "payments": [], "products": [], "services": [ { "name": "Diárias", "auto": true, "value": 0 } ] } ], "customer": [ { "id": 1010, "postPaid": false, "name": "João da Silva" } ], "primaryGuest": { "id": 1010, "postPaid": false, "name": "João da Silva" }, "values": { "rateValue": 0, "value": 0, "paid": 0, "owed": 0, "total": 0, "stayLength": 2, "taxTotal": 0, "bookingValue": 0, "feesWillApply": true } }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 404 — Não encontrado
{ "statusCode": 404, "message": "Reservation not found", "error": "Not Found" }POST /booking/{resid}/cancel
Cancelar uma reserva
Cancela uma reserva existente. Após o cancelamento, o campo status muda para cancelled.
Atenção: Reservas já canceladas, finalizadas (checked-out) ou em estado incompatível retornam 400 Bad Request.
Parâmetros
Nome | resid |
Em | path |
Obrigatório | ✅ |
Tipo | string |
Descrição | ID da reserva a cancelar |
Curl
curl -X 'POST' \ 'https://api.ayrton.net.br/open-api/booking/68/cancel' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID' \ -d ''
Resposta 201 — Sucesso
{ "statusCode": 201, "message": "Reserva cancelada com sucesso" }Resposta 400 — Não pode cancelar
{ "statusCode": 400, "message": "Está reserva já foi Cancelada ou efetuado CheckOut.", "error": "Bad Request" }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 404 — Não encontrado
{ "statusCode": 404, "message": "Reservation not found", "error": "Not Found" }POST /booking/{resid}/sendMessage
Enviar mensagem usando o ID da reserva
Envia uma mensagem de texto ao hóspede vinculado a uma reserva.
Parâmetros
Nome | resid |
Em | path |
Obrigatório | ✅ |
Tipo | string |
Descrição | ID da reserva |
Curl
curl -X 'POST' \ 'https://api.ayrton.net.br/open-api/booking/68/sendMessage' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID' \ -H 'Content-Type: application/json' \ -d '{ "message": { "message": "Bom dia!" } }'Resposta 201 — Sucesso
{ "message": "Bom dia!", "authored": true, "date": "2026-06-01T12:40:13.222Z", "delivered": false, "sent": false, "channelManagerId": "", "id": 12278, "read": null, "isSystemMessage": null, "attachments": null, "deduplicationId": 1780317611 }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 404 — Não encontrado
{ "statusCode": 404, "message": "Reservation not found", "error": "Not Found" }🔍 Cotações
GET /quotes/listings
Obter configuração do motor de reservas
Retorna a configuração completa do motor de reservas incluindo listings disponíveis e localidades.
Curl
curl -X 'GET' \ 'https://api.ayrton.net.br/open-api/quotes/listings' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID'
Resposta 200 — Sucesso
{ "roomTypesObject": { "55": { "id": 55, "name": "Ritz Suítes | Flat 632", "location": "Cruz das Almas", "maxAdults": 2, "maxChildren": 2, "maxOccupants": 2 } }, "locations": ["Cruz das Almas", "Pajuçara"] }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }GET /quotes/locations
Obter localidades disponíveis
Retorna a lista de localidades disponíveis para busca no motor de reservas.
Curl
curl -X 'GET' \ 'https://api.ayrton.net.br/open-api/quotes/locations' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID'
Resposta 200 — Sucesso
[ "Moema", "Vila Mariana", "Vila Clementino", "Brooklin", "Santa Cecília/Higienopolis", "Pompeia", "Rebouças", "Centro histórico/Luz", "Cerqueira Cesar/Jardins", "República", "Alphaville", "Paraiso", "Liberdade" ]
Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }POST /quotes/search
Buscar tipos de quarto disponíveis
Busca tipos de quarto disponíveis para o período e localidade informados.
Curl
curl -X 'POST' \ 'https://api.ayrton.net.br/open-api/quotes/search' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID' \ -H 'Content-Type: application/json' \ -d '{ "checkin": "2025-06-15", "checkout": "2025-06-30", "location": ["Cruz das Almas"], "adults": "2" }'Resposta 201 — Quartos disponíveis
{ "55": { "id": 55, "name": "Ritz Suítes | Flat 632 | Quarto com Vista Mar", "maxAdults": 2, "maxChildren": 2, "maxOccupants": 2, "capacity": 2, "feeTotal": 200, "rateTotal": 5365, "total": 5365, "pricePerNight": 344.33, "rateplan": [ { "id": 233, "priceCache": [ { "date": "2025-06-15", "value": 308 }, { "date": "2025-06-16", "value": 280 } ] } ] } }Resposta 201 — Sem disponibilidade
{}Resposta 400 — Check-in no passado
{ "statusCode": 400, "message": "Checkin não pode ser em uma data passada.", "error": "Bad Request" }Resposta 400 — Estadia acima do limite
{ "statusCode": 400, "message": "Estadia dever ter duração máxima de 90 dias.", "error": "Bad Request" }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }POST /quotes/availability
Verificar disponibilidade e preço de listings específicos
Curl
curl -X 'POST' \ 'https://api.ayrton.net.br/open-api/quotes/availability' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID' \ -H 'Content-Type: application/json' \ -d '{ "checkin": "2025-06-16", "checkout": "2025-06-19", "listings": [62], "adults": 2 }'Resposta 200 — Sucesso
{ "62": { "id": 62, "name": "Tenerife 605 | Beira-Mar Pajuçara", "maxAdults": 2, "maxChildren": 2, "maxOccupants": 2, "capacity": 2, "feeTotal": 130, "rateTotal": 846, "total": 846, "pricePerNight": 238.67, "stayLength": 3, "rateplan": [ { "id": 243, "priceCache": [ { "date": "2025-06-16", "value": 230 }, { "date": "2025-06-17", "value": 230 }, { "date": "2025-06-18", "value": 256 } ] } ] } }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }POST /quotes/summary
Obter resumo diário de preços e disponibilidade
Curl
curl -X 'POST' \ 'https://api.ayrton.net.br/open-api/quotes/summary' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID' \ -H 'Content-Type: application/json' \ -d '{ "start": "2025-05-13", "end": "2025-08-13", "listingId": 62 }'Resposta 200 — Sucesso
{ "2025-05-13": { "price": 230, "date": "2025-05-13", "mst": 2, "stop_sell": false, "closedForCheckin": false, "closedForCheckOut": false, "availability": 0, "available": false } }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }📅 Listings e Calendário
GET /listings/{id}/calendar
Obter calendário de disponibilidade
Retorna o calendário completo de um listing com preço, disponibilidade e restrições por dia.
Parâmetros
Nome | id |
Em | path |
Obrigatório | ✅ |
Tipo | string |
Descrição | ID do listing |
Curl
curl -X 'GET' \ 'https://api.ayrton.net.br/open-api/listings/62/calendar' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID'
Resposta 200 — Sucesso
[ { "2026-05-26": { "available_units": 1, "date": "2026-05-26", "value": "207.00", "mst": 1, "closed_to_arrival": false, "closed_to_departure": false } }, { "2026-05-27": { "available_units": 1, "date": "2026-05-27", "value": "202.00", "mst": 1, "closed_to_arrival": false, "closed_to_departure": false } } ]Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 404 — Não encontrado
{ "statusCode": 404, "message": "Listing not found", "error": "Not Found" }POST /listings/{id}/calendar
Atualizar preços e restrições do calendário
Parâmetros
Nome | id |
Em | path |
Obrigatório | ✅ |
Tipo | string |
Descrição | ID do listing a atualizar |
Curl
curl -X 'POST' \ 'https://api.ayrton.net.br/open-api/listings/62/calendar' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID' \ -H 'Content-Type: application/json' \ -d '[ { "2026-05-26": { "available_units": 1, "date": "2026-05-26", "value": "250.00", "mst": 1, "closed_to_arrival": false, "closed_to_departure": false } } ]'Resposta 200 — Sucesso
[ { "date": "2026-05-26", "value": "250.00" } ]Resposta 400 — Dados inválidos
{ "statusCode": 400, "message": "Bad Request – invalid parameter", "error": "Bad Request" }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 404 — Não encontrado
{ "statusCode": 404, "message": "Listing not found", "error": "Not Found" }GET /listings/{id}/blocks
Obter bloqueios e reservas do calendário
Retorna todos os bloqueios de calendário e reservas vinculados a um listing.
Parâmetros
Nome | id |
Em | path |
Obrigatório | ✅ |
Tipo | string |
Descrição | ID do listing |
Curl
curl -X 'GET' \ 'https://api.ayrton.net.br/open-api/listings/62/blocks' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID'
Resposta 200 — Sucesso
{ "blocks": { "reservations": [ { "reservation_id": "1", "start_date": "2026-03-19", "end_date": "2026-03-21", "booked_time": "2026-03-17", "status": "booked", "total_days": 2, "currency": "BRL", "ota": "BookingCom", "ota_commission": 69.97, "host_payout": 468.28, "total_cost": 468.28, "rental_revenue": 273.28 } ] } }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 404 — Não encontrado
{ "statusCode": 404, "message": "Listing not found", "error": "Not Found" }💬 Conversas
POST /conversations/{id}/send
Enviar mensagem em uma conversa
Envia uma mensagem de texto em uma conversa existente entre o hotel e o hóspede.
Parâmetros
Nome | id |
Em | path |
Obrigatório | ✅ |
Tipo | string |
Descrição | ID da conversa |
Curl
curl -X 'POST' \ 'https://api.ayrton.net.br/open-api/conversations/68/send' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID' \ -H 'Content-Type: application/json' \ -d '{ "message": { "message": "Bom dia!" } }'Resposta 201 — Sucesso
{ "message": "Bom dia!", "authored": true, "author": { "id": 1, "name": "Atendente", "cognitoId": "", "enabled": true, "restrictedAccessToRooms": false, "modules": ["guest"], "meta": null }, "date": "2026-06-01T12:40:13.222Z", "delivered": false, "sent": false, "channelManagerId": "", "conversation": { "id": 68, "title": "Hóspede 0000000000000", "AIStatus": "STOPPED", "threadId": "whatsapp: 0000000000000", "origin": "WhatsApp", "inbox": null, "archived": false, "unread": 0, "messagecount": 908, "lastUpdate": "2026-06-01T12:25:30.452Z", "lastHumanUpdate": "2026-06-01T12:25:30.452Z" }, "AIFeedback": null, "meta": null, "id": 12278, "read": null, "isSystemMessage": null, "attachments": null, "deduplicationId": 1780317611 }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 404 — Não encontrado
{ "statusCode": 404, "message": "Conversation not found", "error": "Not Found" }GET /conversations/{id}
Obter mensagens de uma conversa
Retorna as mensagens de uma conversa com suporte a paginação. Mensagens ordenadas da mais recente para a mais antiga.
Parâmetros
Nome | id |
Em | path |
Obrigatório | ✅ |
Tipo | string |
Descrição | ID da conversa |
Nome | limit |
Em | query |
Obrigatório | ❌ |
Tipo | integer |
Descrição | Máximo de mensagens (padrão: 50) |
Nome | skip |
Em | query |
Obrigatório | ❌ |
Tipo | integer |
Descrição | Mensagens a pular (padrão: 0) |
Curl
curl -X 'GET' \ 'https://api.ayrton.net.br/open-api/conversations/68?limit=20&skip=0' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID'
Resposta 200 — Sucesso
{ "data": [ { "id": 351, "channelManagerId": null, "message": "Bom dia!", "sent": true, "delivered": true, "read": null, "authored": true, "isSystemMessage": null, "date": "2026-01-26T16:44:33.755Z", "attachments": null, "meta": null, "AIFeedback": { "id": "1" }, "author": null } ], "meta": { "count": 7 } }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 404 — Não encontrado
{ "statusCode": 404, "message": "Conversation not found", "error": "Not Found" }POST /conversations/{id}/read
Marcar mensagens como lidas
Marca todas as mensagens não lidas de uma conversa como lidas.
Parâmetros
Nome | id |
Em | path |
Obrigatório | ✅ |
Tipo | string |
Descrição | ID da conversa |
Curl
curl -X 'POST' \ 'https://api.ayrton.net.br/open-api/conversations/68/read' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID' \ -d ''
Resposta 201 — Sucesso
{ "generatedMaps": [], "raw": [], "affected": 1 }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 404 — Não encontrado
{ "statusCode": 404, "message": "Conversation not found", "error": "Not Found" }POST /conversations/{id}/sendattachment
Enviar anexo em uma conversa
Envia um arquivo anexo (imagem, PDF) em uma conversa existente.
Fluxo recomendado
Gere o link de upload em
/conversations/generateAttachmentUploadLink.Faça o upload do arquivo para a URL retornada.
Envie a URL do arquivo usando este endpoint.
Parâmetros
Nome | id |
Em | path |
Obrigatório | ✅ |
Tipo | string |
Descrição | ID da conversa |
Curl
curl -X 'POST' \ 'https://api.ayrton.net.br/open-api/conversations/68/sendattachment' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID' \ -H 'Content-Type: application/json' \ -d '{ "url": "https://resources.ayrton.net.br/attachments/exemplo.png" }'Resposta 200 — Sucesso
{ "attachments": [ "https://resources.ayrton.net.br/attachments/exemplo.png" ] }Resposta 400 — URL inválida
{ "statusCode": 400, "message": "Invalid URL or unsupported file format", "error": "Bad Request" }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 404 — Não encontrado
{ "statusCode": 404, "message": "Conversation not found", "error": "Not Found" }POST /conversations/generateAttachmentUploadLink
Gerar link de upload para anexo
Gera uma URL pré-assinada para upload de arquivo.
Fluxo completo
Chame este endpoint com os metadados do arquivo.
Envie a URL final em
/conversations/{id}/sendattachment.
Curl
curl -X 'POST' \ 'https://api.ayrton.net.br/open-api/conversations/generateAttachmentUploadLink' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID' \ -H 'Content-Type: application/json' \ -d '{ "key": "37d44b01824b3ff4baffa17640bf9aaf", "filetype": "image/jpeg", "ext": "jpeg" }'Resposta 200 — Sucesso
{ "url": "https://storage.amazonaws.com/upload?exemplo=abc" }Resposta 400 — Dados inválidos
{ "statusCode": 400, "message": "Invalid file metadata or unsupported format", "error": "Bad Request" }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 413 — Arquivo muito grande
{ "statusCode": 413, "message": "File size exceeds the maximum allowed limit", "error": "Payload Too Large" }👤 Clientes
GET /customer/search/phone
Buscar clientes por telefone
Pesquisa clientes/hóspedes cadastrados pelo número de telefone. O número deve incluir o código do país.
Parâmetros
Nome | phone |
Em | query |
Obrigatório | ✅ |
Tipo | string |
Descrição | Telefone com código do país. Formato: +{país}{DDD}{número} |
Curl
curl -X 'GET' \ 'https://api.ayrton.net.br/open-api/customer/search/phone?phone=%2B5582999990000' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID'
Resposta 200 — Sucesso
{ "customers": [ { "id": "12345", "name": "Pedro", "phone": "+5582999990000", "email": "pedro@exemplo.com" } ] }Resposta 400 — Formato inválido
{ "statusCode": 400, "message": "Invalid phone number format. Use +{country code}{area code}{number}", "error": "Bad Request" }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 404 — Não encontrado
{ "statusCode": 404, "message": "No customers found with this phone number", "error": "Not Found" }💳 Faturamento
POST /bill/{id}/payment
Registrar pagamento em uma conta
Registra um novo pagamento em uma conta (bill) existente.
Parâmetros
Nome | id |
Em | path |
Obrigatório | ✅ |
Tipo | string |
Descrição | ID da conta (bill) |
Curl
curl -X 'POST' \ 'https://api.ayrton.net.br/open-api/bill/68/payment' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID' \ -H 'Content-Type: application/json' \ -d '{ "paymentType": "cash", "value": "150.00", "payload": {} }'Resposta 201 — Sucesso
Retorna o objeto completo da conta com o pagamento incluído.
{ "id": 68, "name": "Conta Hóspede", "closed": false, "dueDate": null, "chargeRates": true, "posClosed": false, "closedOn": null, "createdOn": "2026-01-26T23:40:31.549Z", "noServiceFee": null, "products": [], "billTocompany": null, "services": [], "payments": [ { "id": 11, "description": null, "payment": "cash", "value": 1, "origin": null, "isPrepayment": false, "dueOn": null, "paid": true, "notes": null, "receivalDate": "2026-05-26T22:50:51.711Z", "refunded": null, "refundedOn": null } ], "createdBy": null, "pos": null, "reservation": { "id": 68, "status": "cancelled", "checkIn": "2026-02-14", "checkOut": "2026-02-18", "numberOfAdults": 2, "origin": "AirBNB" } }Resposta 400 — Dados inválidos
{ "statusCode": 400, "message": "Invalid payment data – value must be a positive decimal string", "error": "Bad Request" }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 404 — Não encontrado
{ "statusCode": 404, "message": "Bill not found", "error": "Not Found" }🧹 Governança
PUT /room/{rid}/markAsClean
Marcar quarto como limpo
Atualiza o status de governança do quarto para limpo (clean). Utilize após a equipe de limpeza concluir a arrumação.
Parâmetros
Nome | rid |
Em | path |
Obrigatório | ✅ |
Tipo | string |
Descrição | ID do quarto |
Curl
curl -X 'PUT' \ 'https://api.ayrton.net.br/open-api/room/68/markAsClean' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID'
Resposta 200 — Sucesso
{ "generatedMaps": [], "raw": [], "affected": 1 }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 404 — Não encontrado
{ "statusCode": 404, "message": "Room not found", "error": "Not Found" }PUT /room/{rid}/markAsDirty
Marcar quarto como sujo
Atualiza o status de governança do quarto para sujo (dirty). Geralmente acionado automaticamente após o check-out ou manualmente pela equipe de governança.
Parâmetros
Nome | rid |
Em | path |
Obrigatório | ✅ |
Tipo | string |
Descrição | ID do quarto |
Curl
curl -X 'PUT' \ 'https://api.ayrton.net.br/open-api/room/9/markAsDirty' \ -H 'accept: application/json' \ -H 'authorization: SUA_API_KEY' \ -H 'x-hotel: SEU_HOTEL_ID'
Resposta 200 — Sucesso
{ "generatedMaps": [], "raw": [], "affected": 1 }Resposta 401 — Não autorizado
{ "statusCode": 401, "message": "Invalid, disabled or non existent api key.", "error": "Unauthorized" }Resposta 404 — Não encontrado
{ "statusCode": 404, "message": "Room not found", "error": "Not Found" }📎 Referência Interativa da API
Para a referência interativa completa com funcionalidade “Try it out”, acesse o Swagger UI:
© 2026 Ayrton Hostay. Todos os direitos reservados.
