Getting a development license for Oracle Opera requires being a certified OHIP partner, which requires a business relationship with Oracle, which requires having an existing product to certify. It’s a catch-22 for someone trying to learn the domain before building in it.
My approach: study from the outside in
The HTNG specification is publicly available at htng.org. It’s dense, it’s XML-heavy, and it’s not written for people who are new to the domain but it’s the ground truth for how systems are supposed to communicate.
Mews developer documentation is comprehensive and public. It includes payload examples, webhook schemas, and a clear explanation of the data model. Reading it is the fastest way to understand what a modern cloud-native PMS looks like from an API perspective.
Open-source integrations on GitHub expose real message structures. Search for Opera or Mews integrations and read the parsing code. Someone else has already mapped the fields you’ll need to understand.
The OPERA Cloud REST API documentation is gated behind registration, but the registration is free. The documentation is detailed enough to understand the data model even if you can’t run queries against a live system.
Building a mock PMS
The most valuable thing I did: build a mock that emits realistic payloads. Not a stub that returns empty responses a real mock that fires webhook events with plausible data, including edge cases like cancellations through different paths, room type changes, and rate plan modifications.
Building the mock forced me to understand the domain well enough to generate realistic data. That’s a different level of understanding than reading about it.
What this approach can and can’t teach you
It teaches you the shape of the problem: the data model, the message formats, the lifecycle events, the common integration patterns. This is genuinely useful you can build against it, design systems around it, and ask better questions when you do get sandbox access.
What it can’t teach you: the texture. The specific ways a real Opera installation misbehaves. The undocumented edge cases that every integration engineer hits. The operational context that explains why certain design decisions were made.
Get sandbox access as soon as you can. But don’t wait for it to start learning.