.png)
Yardi Voyager Integration Guide
Yardi Voyager integrates with enterprise systems through customer-specific web services, SOAP/XML interfaces, file exchanges, and selected outbound notifications.
Yardi Voyager integration options at a glance
Yardi Voyager integrations depend on the interface provisioned for each customer, enabled module, and product edition. Available mechanisms may include customer-specific REST endpoints, SOAP or XML web services, scheduled imports and exports, batch exchanges, files, and selected outbound notifications or callbacks. A universal REST API, GraphQL API, or all-object webhook model is not confirmed. Martini can consume confirmed Yardi web services, process JSON or XML, receive compatible callbacks, orchestrate scheduled file or batch workflows, and map Voyager data into canonical models. Credentials, endpoint URLs, property permissions, and interface-specific keys or service accounts can be stored in environment configuration.
Common Yardi Voyager integration patterns
Common Yardi Voyager data objects used in integrations
Authentication and security considerations
Interface-specific authentication
Yardi Voyager authentication depends on the customer-specific interface. Service-account credentials, API keys, shared secrets, or other approved mechanisms may apply; OAuth 2.0 and JWT bearer authentication should not be assumed as universal Yardi capabilities.
Environment and access controls
- Keep test and production endpoints and credentials separate.
- Use least-privilege access scoped to the required properties, organizations, modules, and operations.
- Use HTTPS where supported and validate certificates in production.
- Store credentials, keys, tokens, endpoint URLs, and certificates in Martini secrets or environment configuration.
Privacy and auditability
Residents, leases, payments, charges, and maintenance data may contain personal or financial information. Mask sensitive payload values in logs, restrict workflow access, retain only necessary data, and preserve audit identifiers for material changes.
Operational considerations for Yardi Voyager integrations
Interface variability
Confirm the Yardi edition, enabled modules, endpoint contract, supported read and write operations, property permissions, and test environment before implementation. Do not infer capabilities from another Voyager deployment.
Throughput and incremental retrieval
Universal public rate limits were not confirmed. Respect customer-specific limits, use bounded concurrency and exponential backoff, and avoid repeatedly retrieving full portfolios. Confirm pagination, maximum response sizes, modified-date filters, continuation tokens, and watermark fields.
Idempotency and reconciliation
Use stable Yardi identifiers or approved composite keys for Properties, Units, Leases, Work Orders, Invoices, and transactions. Preserve request and response identifiers, make writes safe to retry, and report retrieved, created, updated, skipped, failed, and retried counts.
Schema and data quality
- Version WSDLs, interface specifications, and file layouts.
- Handle XML namespaces, optional elements, repeated values, and implementation-specific codes.
- Account for property-local time zones, daylight-saving changes, accounting periods, currencies, decimal precision, reversals, and adjustments.
- Test representative data across properties, modules, statuses, and error conditions.
Why use Martini instead of scripts or point-to-point integrations?
Centralized orchestration
Martini provides a maintainable workflow layer for receiving Yardi inputs, invoking confirmed interfaces, validating data, applying business rules, and delivering results to multiple applications without duplicating transport and error logic in point-to-point scripts.
Reusable transformation
Yardi-specific XML, JSON, file structures, identifiers, and status codes can be mapped into canonical property-management, leasing, maintenance, or accounting models and reused across downstream integrations.
Operational control
Workflows can support scheduled and event-driven processing, checkpoints, idempotency, bounded retries, reconciliation, secure configuration, and diagnostic logging. Martini can also expose a controlled API façade that hides Yardi-specific details from consuming applications.
Adaptable implementation
Because Yardi interface availability varies by customer, Martini’s standards-based API, SOAP, file, callback, mapping, and workflow capabilities allow the implementation to follow the confirmed interface rather than requiring an assumed connector or direct database dependency.