Skip to Content
API ReferenceVisão Geral

API Reference — Visão Geral

Introdução

A API do Opero Global é uma API REST que permite integrar sistemas externos com todas as funcionalidades da plataforma. Com ela você pode:

  • Criar e gerenciar reservas programaticamente
  • Consultar disponibilidade em tempo real
  • Automatizar processos financeiros
  • Integrar com channel managers e OTAs
  • Construir interfaces customizadas

Base URL

Produção: https://api.opero.global/api Staging: https://staging-api.opero.global/api

Todas as URLs de endpoint são relativas à base URL acima.

Formato

  • Request: JSON (Content-Type: application/json)
  • Response: JSON
  • Encoding: UTF-8
  • Datas: ISO 8601 (2026-05-25T14:30:00Z)
  • Valores monetários: Inteiros em centavos (ex: R$ 199,90 = 19990)
  • IDs: UUID v4

Autenticação

Todas as requisições (exceto endpoints públicos) requerem autenticação via:

  1. Bearer Token (sessão) — Para aplicações frontend
  2. API Key — Para integrações servidor-a-servidor
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9...

ou

X-API-Key: opk_live_abc123def456...

Detalhes completos em Autenticação.

Multi-tenancy

Quase todos os endpoints são organizados sob um tenant:

/api/tenants/:tenantId/reservations /api/tenants/:tenantId/financial/chart-of-accounts /api/tenants/:tenantId/guests

O tenantId identifica sua organização. Você só pode acessar dados do seu próprio tenant.

Endpoints públicos

Alguns endpoints não requerem autenticação (usados pelo portal de reservas):

GET /api/public/property/:propertyId/config GET /api/public/property/:propertyId/rooms GET /api/public/property/:propertyId/availability POST /api/public/reservations/hold POST /api/public/payments/create

Paginação

Endpoints de listagem suportam paginação:

GET /api/tenants/:tenantId/reservations?page=1&limit=20

Resposta:

{ "data": [...], "meta": { "page": 1, "limit": 20, "total": 145, "totalPages": 8 } }

Filtros

Muitos endpoints suportam filtros via query params:

GET /api/tenants/:tenantId/reservations?status=confirmed&startDate=2026-06-01&endDate=2026-06-30

Respostas de erro

Erros seguem um formato consistente:

{ "statusCode": 400, "message": "Validation failed", "errors": [ { "field": "checkIn", "message": "Check-in date must be in the future" } ] }

Códigos HTTP comuns

CódigoSignificado
200Sucesso
201Recurso criado
400Requisição inválida (validação falhou)
401Não autenticado (token ausente/expirado)
403Sem permissão (CASL negou acesso)
404Recurso não encontrado
409Conflito (ex: reserva duplicada)
422Entidade não processável
429Rate limit excedido
500Erro interno do servidor

Rate Limiting

  • API Key: 1000 requisições/minuto
  • Bearer Token: 100 requisições/minuto
  • Headers de resposta incluem limites:
X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 997 X-RateLimit-Reset: 1685000000

Módulos da API

MóduloDescriçãoEndpoints
AuthAutenticação e sessões10+
PropertiesPropriedades e configurações15+
UnitsUnidades (quartos/camas)10+
GuestsHóspedes e verificação20+
ReservationsReservas e lifecycle25+
FinancialPlano de contas, lançamentos80+
Cash ManagementCaixa, banco, PIX20+
Accounts PayableFornecedores e pagáveis30+
Accounts ReceivableClientes e recebíveis25+
InventoryEstoque, receitas, consumo20+
PaymentGateways e processamento15+
IssuesReclamações e suporte15+
OCPComunicação (email/SMS/WhatsApp)20+
ReportsRelatórios financeiros10+
AdminGestão de tenants (superuser)25+
Total450+

Playground interativo

Acesse o Playground para testar endpoints diretamente no navegador, com documentação inline e geração de código em 20+ linguagens.

Last updated on