Skip to content

πŸš€ Property Management SaaS - Complete API DocumentationΒΆ

Comprehensive API documentation for the Property Management SaaS platform, covering all microservices, authentication, regional compliance, and integration patterns.

πŸ“‹ Table of ContentsΒΆ

  1. API Overview
  2. Authentication & Authorization
  3. Base URLs & Endpoints
  4. Common Request/Response Patterns
  5. Error Handling & Status Codes
  6. Rate Limiting & Throttling
  7. Regional API Variations
  8. Microservices API Reference
  9. Integration Guides
  10. SDK & Client Libraries
  11. Testing & Debugging
  12. Webhooks & Real-time Updates

🌐 API Overview¢

Platform ArchitectureΒΆ

The Property Management SaaS platform is built on a microservices architecture with 8 core services, each exposing RESTful APIs through a centralized API Gateway.

API Design PrinciplesΒΆ

  • RESTful Design: Standard HTTP methods and status codes
  • JSON Format: All requests and responses use JSON
  • Versioning: API versioning through URL path (/api/v1/)
  • Pagination: Consistent pagination across all list endpoints
  • Filtering & Sorting: Flexible query parameters for data retrieval
  • Bulk Operations: Support for batch operations where applicable

Supported HTTP MethodsΒΆ

  • GET: Retrieve data
  • POST: Create new resources
  • PUT: Update entire resources
  • PATCH: Partial updates
  • DELETE: Remove resources

πŸ” Authentication & AuthorizationΒΆ

Authentication MethodsΒΆ

1. JWT Token Authentication (Primary)ΒΆ

Authorization: Bearer <jwt_token>

Token Structure:

{
  "header": {
    "alg": "RS256",
    "typ": "JWT"
  },
  "payload": {
    "sub": "user-uuid",
    "email": "user@example.com",
    "org_id": "organization-uuid",
    "org_roles": ["PropertyManager", "Admin"],
    "permissions": ["property:read", "tenant:manage"],
    "tenant_profile_id": "tenant-uuid",
    "jti": "token-uuid",
    "iat": 1640995200,
    "exp": 1641001200,
    "aud": "PropertyManagement"
  }
}

2. API Key Authentication (Service-to-Service)ΒΆ

X-API-Key: <api_key>

3. OAuth 2.0 (Third-party Integrations)ΒΆ

Authorization: Bearer <oauth_access_token>

Authentication FlowΒΆ

Login ProcessΒΆ

sequenceDiagram
    participant Client
    participant Gateway as API Gateway
    participant Identity as Identity Service
    participant User as User Service

    Client->>Gateway: POST /api/v1/identity/login
    Gateway->>Identity: Forward Request
    Identity->>User: Validate User
    User-->>Identity: User Data + Roles
    Identity-->>Gateway: JWT Token + Claims
    Gateway-->>Client: Authentication Response

Token RefreshΒΆ

POST /api/v1/identity/refresh
Content-Type: application/json

{
  "refresh_token": "refresh_token_here"
}

Authorization ModelΒΆ

Role-Based Access Control (RBAC)ΒΆ

{
  "roles": {
    "SuperAdmin": ["*"],
    "OrganizationOwner": ["org:*", "property:*", "user:*"],
    "PropertyManager": ["property:read", "property:update", "tenant:*"],
    "PropertyOwner": ["property:read", "financial:read"],
    "Tenant": ["unit:read", "maintenance:create", "payment:create"],
    "MaintenanceStaff": ["workorder:*", "maintenance:*"],
    "SecurityStaff": ["visitor:*", "security:*"]
  }
}

Permission MatrixΒΆ

Resource Read Create Update Delete Admin
Organization βœ… ❌ βœ… ❌ βœ…
Property βœ… βœ… βœ… ❌ βœ…
Unit βœ… βœ… βœ… ❌ βœ…
Tenant βœ… βœ… βœ… ❌ βœ…
Financial βœ… βœ… βœ… ❌ βœ…
Maintenance βœ… βœ… βœ… ❌ βœ…

🌍 Base URLs & Endpoints¢

Environment URLsΒΆ

DevelopmentΒΆ

API Gateway: http://localhost:5000
Identity Service: http://localhost:5001
User Service: http://localhost:5002
Organization Service: http://localhost:5003
Property Service: http://localhost:5004
Financial Service: http://localhost:5005
Operations Service: http://localhost:5006
Community Service: http://localhost:5007
Notifications Service: http://localhost:5008

StagingΒΆ

Base URL: https://api-staging.propertymgmt.com

ProductionΒΆ

Base URL: https://api.propertymgmt.com

API VersioningΒΆ

Current Version: v1
URL Pattern: /api/v1/{service}/{resource}
Example: /api/v1/properties/units

πŸ“‘ Common Request/Response PatternsΒΆ

Standard Request HeadersΒΆ

Content-Type: application/json
Accept: application/json
Authorization: Bearer <jwt_token>
X-Request-ID: <unique_request_id>
X-Organization-ID: <org_id> (if not in JWT)

Standard Response FormatΒΆ

{
  "success": true,
  "data": {
    // Response data here
  },
  "meta": {
    "timestamp": "2024-01-15T10:30:00Z",
    "request_id": "req_123456789",
    "version": "1.0.0"
  }
}

Pagination Response FormatΒΆ

{
  "success": true,
  "data": [
    // Array of items
  ],
  "meta": {
    "pagination": {
      "page": 1,
      "page_size": 20,
      "total_count": 150,
      "total_pages": 8,
      "has_next": true,
      "has_previous": false
    }
  }
}

Query Parameters for FilteringΒΆ

GET /api/v1/properties?page=1&page_size=20&status=active&type=residential&sort_by=name&sort_order=asc

Common Query Parameters: - page: Page number (default: 1) - page_size: Items per page (default: 20, max: 100) - sort_by: Field to sort by - sort_order: asc or desc - status: Filter by status - created_after: ISO 8601 date - created_before: ISO 8601 date


❌ Error Handling & Status Codes¢

HTTP Status CodesΒΆ

Success CodesΒΆ

  • 200 OK: Request successful
  • 201 Created: Resource created successfully
  • 204 No Content: Request successful, no content to return

Client Error CodesΒΆ

  • 400 Bad Request: Invalid request data
  • 401 Unauthorized: Authentication required
  • 403 Forbidden: Insufficient permissions
  • 404 Not Found: Resource not found
  • 409 Conflict: Resource conflict
  • 422 Unprocessable Entity: Validation errors
  • 429 Too Many Requests: Rate limit exceeded

Server Error CodesΒΆ

  • 500 Internal Server Error: Server error
  • 502 Bad Gateway: Service unavailable
  • 503 Service Unavailable: Service temporarily unavailable

Error Response FormatΒΆ

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Validation failed",
    "details": [
      {
        "field": "email",
        "message": "Email is required"
      },
      {
        "field": "phone",
        "message": "Phone number format is invalid"
      }
    ]
  },
  "meta": {
    "timestamp": "2024-01-15T10:30:00Z",
    "request_id": "req_123456789",
    "correlation_id": "corr_987654321"
  }
}

Common Error CodesΒΆ

Error Code HTTP Status Description
AUTHENTICATION_FAILED 401 Invalid credentials
TOKEN_EXPIRED 401 JWT token has expired
INSUFFICIENT_PERMISSIONS 403 User lacks required permissions
RESOURCE_NOT_FOUND 404 Requested resource doesn't exist
VALIDATION_ERROR 422 Request data validation failed
RATE_LIMIT_EXCEEDED 429 Too many requests
SERVICE_UNAVAILABLE 503 Service temporarily unavailable

⚑ Rate Limiting & Throttling¢

Rate Limit PoliciesΒΆ

Standard UsersΒΆ

Rate Limit: 1000 requests per hour
Burst Limit: 100 requests per minute

Premium UsersΒΆ

Rate Limit: 5000 requests per hour
Burst Limit: 500 requests per minute

Enterprise UsersΒΆ

Rate Limit: 25000 requests per hour
Burst Limit: 2500 requests per minute

Rate Limit HeadersΒΆ

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 850
X-RateLimit-Reset: 1640995200
X-RateLimit-Window: 3600

Rate Limit ResponseΒΆ

{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Try again in 15 minutes.",
    "retry_after": 900
  }
}

🌍 Regional API Variations¢

India-Specific FeaturesΒΆ

GST IntegrationΒΆ

{
  "gst_number": "22AAAAA0000A1Z5",
  "gst_rate": 18.0,
  "cgst_rate": 9.0,
  "sgst_rate": 9.0,
  "igst_rate": 18.0,
  "gst_category": "interstate"
}

TDS ManagementΒΆ

{
  "tds_section": "194C",
  "tds_rate": 2.0,
  "pan_number": "ABCDE1234F",
  "tds_certificate_number": "TDS123456789"
}

Housing Society ComplianceΒΆ

{
  "society_registration_number": "MHS/123/2024",
  "registrar_office": "Mumbai",
  "bye_laws_version": "2024.1",
  "compliance_status": "compliant"
}

India-Specific EndpointsΒΆ

POST /api/v1/financial/gst-calculator
GET /api/v1/financial/tds-reports
POST /api/v1/compliance/society-filing
GET /api/v1/financial/gst-returns

Canada-Specific FeaturesΒΆ

Strata/Condo ComplianceΒΆ

{
  "strata_plan_number": "EPS1234",
  "province": "BC",
  "strata_property_act_version": "2024",
  "personal_info_protection": "PIPA",
  "status_certificate_required": true
}

Provincial Tax ComplianceΒΆ

{
  "hst_rate": 12.0,
  "gst_rate": 5.0,
  "pst_rate": 7.0,
  "province": "BC",
  "tax_registration_number": "123456789RT0001"
}

Canada-Specific EndpointsΒΆ

POST /api/v1/financial/hst-calculator
GET /api/v1/compliance/status-certificate
POST /api/v1/financial/ltb-forms
GET /api/v1/compliance/provincial-reports

πŸ—οΈ Microservices API ReferenceΒΆ

1. Identity Service APIΒΆ

Authentication EndpointsΒΆ

POST /api/v1/identity/login
POST /api/v1/identity/register
POST /api/v1/identity/refresh
POST /api/v1/identity/logout
POST /api/v1/identity/forgot-password
POST /api/v1/identity/reset-password
POST /api/v1/identity/verify-email
POST /api/v1/identity/mfa/verify
POST /api/v1/identity/mfa/setup

User Management EndpointsΒΆ

GET /api/v1/identity/users
GET /api/v1/identity/users/{id}
POST /api/v1/identity/users
PUT /api/v1/identity/users/{id}
DELETE /api/v1/identity/users/{id}
GET /api/v1/identity/users/{id}/roles
PUT /api/v1/identity/users/{id}/roles

Role & Permission EndpointsΒΆ

GET /api/v1/identity/roles
GET /api/v1/identity/roles/{id}
POST /api/v1/identity/roles
PUT /api/v1/identity/roles/{id}
DELETE /api/v1/identity/roles/{id}
GET /api/v1/identity/permissions
GET /api/v1/identity/roles/{id}/permissions
PUT /api/v1/identity/roles/{id}/permissions

2. Organization Service APIΒΆ

Organization ManagementΒΆ

GET /api/v1/organizations
GET /api/v1/organizations/{id}
POST /api/v1/organizations
PUT /api/v1/organizations/{id}
DELETE /api/v1/organizations/{id}
GET /api/v1/organizations/{id}/settings
PUT /api/v1/organizations/{id}/settings

Subscription ManagementΒΆ

GET /api/v1/organizations/{id}/subscription
POST /api/v1/organizations/{id}/subscription
PUT /api/v1/organizations/{id}/subscription
GET /api/v1/organizations/{id}/billing
POST /api/v1/organizations/{id}/billing/upgrade
POST /api/v1/organizations/{id}/billing/downgrade

Domain ManagementΒΆ

GET /api/v1/organizations/{id}/domains
POST /api/v1/organizations/{id}/domains
DELETE /api/v1/organizations/{id}/domains/{domain_id}
POST /api/v1/organizations/{id}/domains/{domain_id}/verify

3. Property Service APIΒΆ

Property ManagementΒΆ

GET /api/v1/properties
GET /api/v1/properties/{id}
POST /api/v1/properties
PUT /api/v1/properties/{id}
DELETE /api/v1/properties/{id}
GET /api/v1/properties/{id}/units
GET /api/v1/properties/{id}/amenities
GET /api/v1/properties/{id}/policies

Unit ManagementΒΆ

GET /api/v1/properties/{property_id}/units
GET /api/v1/properties/{property_id}/units/{unit_id}
POST /api/v1/properties/{property_id}/units
PUT /api/v1/properties/{property_id}/units/{unit_id}
DELETE /api/v1/properties/{property_id}/units/{unit_id}
GET /api/v1/properties/{property_id}/units/{unit_id}/status
PUT /api/v1/properties/{property_id}/units/{unit_id}/status

Tenant ManagementΒΆ

GET /api/v1/properties/{property_id}/tenants
GET /api/v1/properties/{property_id}/tenants/{tenant_id}
POST /api/v1/properties/{property_id}/tenants
PUT /api/v1/properties/{property_id}/tenants/{tenant_id}
DELETE /api/v1/properties/{property_id}/tenants/{tenant_id}
GET /api/v1/properties/{property_id}/tenants/{tenant_id}/lease
POST /api/v1/properties/{property_id}/tenants/{tenant_id}/lease

4. Financial Service APIΒΆ

Invoice ManagementΒΆ

GET /api/v1/financial/invoices
GET /api/v1/financial/invoices/{id}
POST /api/v1/financial/invoices
PUT /api/v1/financial/invoices/{id}
DELETE /api/v1/financial/invoices/{id}
POST /api/v1/financial/invoices/{id}/send
POST /api/v1/financial/invoices/{id}/cancel
GET /api/v1/financial/invoices/{id}/payments

Payment ProcessingΒΆ

GET /api/v1/financial/payments
GET /api/v1/financial/payments/{id}
POST /api/v1/financial/payments
PUT /api/v1/financial/payments/{id}
GET /api/v1/financial/payments/{id}/receipt
POST /api/v1/financial/payments/{id}/refund
GET /api/v1/financial/payment-methods
POST /api/v1/financial/payment-methods

Expense ManagementΒΆ

GET /api/v1/financial/expenses
GET /api/v1/financial/expenses/{id}
POST /api/v1/financial/expenses
PUT /api/v1/financial/expenses/{id}
DELETE /api/v1/financial/expenses/{id}
POST /api/v1/financial/expenses/{id}/approve
POST /api/v1/financial/expenses/{id}/reject
GET /api/v1/financial/expenses/{id}/attachments

Budget ManagementΒΆ

GET /api/v1/financial/budgets
GET /api/v1/financial/budgets/{id}
POST /api/v1/financial/budgets
PUT /api/v1/financial/budgets/{id}
DELETE /api/v1/financial/budgets/{id}
GET /api/v1/financial/budgets/{id}/categories
POST /api/v1/financial/budgets/{id}/categories
GET /api/v1/financial/budgets/{id}/variance

5. Operations Service APIΒΆ

Maintenance RequestsΒΆ

GET /api/v1/operations/maintenance-requests
GET /api/v1/operations/maintenance-requests/{id}
POST /api/v1/operations/maintenance-requests
PUT /api/v1/operations/maintenance-requests/{id}
DELETE /api/v1/operations/maintenance-requests/{id}
POST /api/v1/operations/maintenance-requests/{id}/assign
POST /api/v1/operations/maintenance-requests/{id}/complete
GET /api/v1/operations/maintenance-requests/{id}/updates

Work OrdersΒΆ

GET /api/v1/operations/work-orders
GET /api/v1/operations/work-orders/{id}
POST /api/v1/operations/work-orders
PUT /api/v1/operations/work-orders/{id}
DELETE /api/v1/operations/work-orders/{id}
POST /api/v1/operations/work-orders/{id}/start
POST /api/v1/operations/work-orders/{id}/complete
POST /api/v1/operations/work-orders/{id}/cancel

Vendor ManagementΒΆ

GET /api/v1/operations/vendors
GET /api/v1/operations/vendors/{id}
POST /api/v1/operations/vendors
PUT /api/v1/operations/vendors/{id}
DELETE /api/v1/operations/vendors/{id}
GET /api/v1/operations/vendors/{id}/performance
GET /api/v1/operations/vendors/{id}/work-orders
POST /api/v1/operations/vendors/{id}/rate

6. Community Service APIΒΆ

Community EventsΒΆ

GET /api/v1/community/events
GET /api/v1/community/events/{id}
POST /api/v1/community/events
PUT /api/v1/community/events/{id}
DELETE /api/v1/community/events/{id}
POST /api/v1/community/events/{id}/register
DELETE /api/v1/community/events/{id}/register
GET /api/v1/community/events/{id}/attendees

MarketplaceΒΆ

GET /api/v1/community/marketplace/listings
GET /api/v1/community/marketplace/listings/{id}
POST /api/v1/community/marketplace/listings
PUT /api/v1/community/marketplace/listings/{id}
DELETE /api/v1/community/marketplace/listings/{id}
POST /api/v1/community/marketplace/listings/{id}/contact
GET /api/v1/community/marketplace/categories

7. Notifications Service APIΒΆ

Notification ManagementΒΆ

GET /api/v1/notifications
GET /api/v1/notifications/{id}
POST /api/v1/notifications
PUT /api/v1/notifications/{id}
DELETE /api/v1/notifications/{id}
POST /api/v1/notifications/{id}/mark-read
POST /api/v1/notifications/bulk-mark-read
GET /api/v1/notifications/unread-count

TemplatesΒΆ

GET /api/v1/notifications/templates
GET /api/v1/notifications/templates/{id}
POST /api/v1/notifications/templates
PUT /api/v1/notifications/templates/{id}
DELETE /api/v1/notifications/templates/{id}
POST /api/v1/notifications/templates/{id}/send

ChannelsΒΆ

GET /api/v1/notifications/channels
GET /api/v1/notifications/channels/{id}
POST /api/v1/notifications/channels
PUT /api/v1/notifications/channels/{id}
DELETE /api/v1/notifications/channels/{id}
POST /api/v1/notifications/channels/{id}/test

πŸ”Œ Integration GuidesΒΆ

Payment Gateway IntegrationΒΆ

Stripe IntegrationΒΆ

{
  "payment_method": "stripe",
  "stripe_publishable_key": "pk_test_...",
  "stripe_secret_key": "sk_test_...",
  "webhook_secret": "whsec_...",
  "supported_currencies": ["USD", "CAD", "INR"],
  "payment_methods": ["card", "bank_transfer", "wallet"]
}

PayPal IntegrationΒΆ

{
  "payment_method": "paypal",
  "client_id": "client_id_here",
  "client_secret": "client_secret_here",
  "environment": "sandbox",
  "webhook_url": "https://api.propertymgmt.com/webhooks/paypal"
}

Regional Payment MethodsΒΆ

India:

{
  "upi": {
    "enabled": true,
    "providers": ["phonepe", "googlepay", "paytm"],
    "merchant_id": "merchant_id_here"
  },
  "net_banking": {
    "enabled": true,
    "banks": ["hdfc", "icici", "sbi"]
  },
  "wallet": {
    "enabled": true,
    "providers": ["paytm", "phonepe", "amazonpay"]
  }
}

Canada:

{
  "interac": {
    "enabled": true,
    "merchant_id": "merchant_id_here"
  },
  "pre_authorized_debit": {
    "enabled": true,
    "processor": "nacha"
  },
  "credit_union": {
    "enabled": true,
    "providers": ["vancity", "coast_capital"]
  }
}

Accounting Software IntegrationΒΆ

QuickBooks IntegrationΒΆ

{
  "accounting_system": "quickbooks",
  "client_id": "client_id_here",
  "client_secret": "client_secret_here",
  "environment": "sandbox",
  "webhook_url": "https://api.propertymgmt.com/webhooks/quickbooks",
  "sync_frequency": "hourly",
  "entities": ["customers", "invoices", "payments", "expenses"]
}

Sage IntegrationΒΆ

{
  "accounting_system": "sage",
  "api_key": "api_key_here",
  "environment": "production",
  "webhook_url": "https://api.propertymgmt.com/webhooks/sage",
  "sync_frequency": "daily",
  "entities": ["customers", "invoices", "payments"]
}

Communication Service IntegrationΒΆ

Email Service (SendGrid)ΒΆ

{
  "email_provider": "sendgrid",
  "api_key": "api_key_here",
  "from_email": "noreply@propertymgmt.com",
  "webhook_url": "https://api.propertymgmt.com/webhooks/sendgrid",
  "templates": {
    "welcome": "d-welcome-template-id",
    "invoice": "d-invoice-template-id",
    "maintenance": "d-maintenance-template-id"
  }
}

SMS Service (Twilio)ΒΆ

{
  "sms_provider": "twilio",
  "account_sid": "account_sid_here",
  "auth_token": "auth_token_here",
  "from_number": "+1234567890",
  "webhook_url": "https://api.propertymgmt.com/webhooks/twilio"
}

WhatsApp Business APIΒΆ

{
  "whatsapp_provider": "meta",
  "access_token": "access_token_here",
  "phone_number_id": "phone_number_id_here",
  "webhook_verify_token": "verify_token_here",
  "webhook_url": "https://api.propertymgmt.com/webhooks/whatsapp"
}

πŸ“š SDK & Client LibrariesΒΆ

Official SDKsΒΆ

JavaScript/TypeScript SDKΒΆ

npm install @propertymgmt/js-sdk

Usage Example:

import { PropertyManagementSDK } from '@propertymgmt/js-sdk';

const sdk = new PropertyManagementSDK({
  apiKey: 'your_api_key',
  environment: 'production'
});

// Get properties
const properties = await sdk.properties.list({
  page: 1,
  pageSize: 20
});

// Create a property
const property = await sdk.properties.create({
  name: 'Sunset Apartments',
  type: 'residential',
  address: {
    street: '123 Main St',
    city: 'Vancouver',
    province: 'BC',
    postalCode: 'V6B 1A1'
  }
});

Python SDKΒΆ

pip install propertymgmt-python-sdk

Usage Example:

from propertymgmt import PropertyManagementSDK

sdk = PropertyManagementSDK(
    api_key='your_api_key',
    environment='production'
)

# Get properties
properties = sdk.properties.list(
    page=1,
    page_size=20
)

# Create a property
property = sdk.properties.create(
    name='Sunset Apartments',
    type='residential',
    address={
        'street': '123 Main St',
        'city': 'Vancouver',
        'province': 'BC',
        'postal_code': 'V6B 1A1'
    }
)

Java SDKΒΆ

<dependency>
    <groupId>com.propertymgmt</groupId>
    <artifactId>java-sdk</artifactId>
    <version>1.0.0</version>
</dependency>

Usage Example:

import com.propertymgmt.PropertyManagementSDK;

PropertyManagementSDK sdk = new PropertyManagementSDK.Builder()
    .apiKey("your_api_key")
    .environment("production")
    .build();

// Get properties
PropertyList properties = sdk.properties().list()
    .page(1)
    .pageSize(20)
    .execute();

// Create a property
Property property = sdk.properties().create()
    .name("Sunset Apartments")
    .type("residential")
    .address(new Address("123 Main St", "Vancouver", "BC", "V6B 1A1"))
    .execute();

Community SDKsΒΆ

PHP SDKΒΆ

composer require propertymgmt/php-sdk

Ruby SDKΒΆ

gem install propertymgmt-ruby-sdk

Go SDKΒΆ

go get github.com/propertymgmt/go-sdk

πŸ§ͺ Testing & DebuggingΒΆ

API Testing ToolsΒΆ

Postman CollectionΒΆ

Download the complete Postman collection:

https://api.propertymgmt.com/postman-collection.json

cURL ExamplesΒΆ

Authentication:

# Login
curl -X POST https://api.propertymgmt.com/api/v1/identity/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "password": "password123"
  }'

# Use token
curl -X GET https://api.propertymgmt.com/api/v1/properties \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Property Management:

# Get properties
curl -X GET "https://api.propertymgmt.com/api/v1/properties?page=1&page_size=20" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

# Create property
curl -X POST https://api.propertymgmt.com/api/v1/properties \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Sunset Apartments",
    "type": "residential",
    "address": {
      "street": "123 Main St",
      "city": "Vancouver",
      "province": "BC",
      "postal_code": "V6B 1A1"
    }
  }'

Testing EnvironmentΒΆ

Sandbox EnvironmentΒΆ

Base URL: https://api-sandbox.propertymgmt.com
Test Data: Pre-populated with sample properties and users
Rate Limits: Higher limits for testing

Test CredentialsΒΆ

{
  "admin_user": {
    "email": "admin@sandbox.propertymgmt.com",
    "password": "admin123"
  },
  "property_manager": {
    "email": "manager@sandbox.propertymgmt.com",
    "password": "manager123"
  },
  "tenant": {
    "email": "tenant@sandbox.propertymgmt.com",
    "password": "tenant123"
  }
}

Debugging ToolsΒΆ

Request LoggingΒΆ

X-Debug: true
X-Request-ID: debug_123456789

Response HeadersΒΆ

X-Request-ID: req_123456789
X-Response-Time: 45ms
X-Cache: HIT
X-RateLimit-Remaining: 850

Error TrackingΒΆ

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Validation failed",
    "details": [...],
    "trace_id": "trace_123456789",
    "correlation_id": "corr_987654321"
  }
}

πŸ”” Webhooks & Real-time UpdatesΒΆ

Webhook ConfigurationΒΆ

Webhook EndpointsΒΆ

POST /api/v1/webhooks/configure
GET /api/v1/webhooks
DELETE /api/v1/webhooks/{webhook_id}

Webhook EventsΒΆ

{
  "events": [
    "property.created",
    "property.updated",
    "property.deleted",
    "tenant.created",
    "tenant.updated",
    "tenant.deleted",
    "invoice.created",
    "invoice.paid",
    "maintenance.created",
    "maintenance.completed",
    "payment.received",
    "payment.failed"
  ]
}

Webhook Payload ExampleΒΆ

{
  "event": "property.created",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "property_id": "prop_123456789",
    "name": "Sunset Apartments",
    "type": "residential",
    "organization_id": "org_987654321"
  },
  "webhook_id": "webhook_123456789"
}

Real-time UpdatesΒΆ

WebSocket ConnectionΒΆ

const ws = new WebSocket('wss://api.propertymgmt.com/ws');

ws.onmessage = function(event) {
  const update = JSON.parse(event.data);

  switch(update.type) {
    case 'maintenance_update':
      handleMaintenanceUpdate(update.data);
      break;
    case 'payment_received':
      handlePaymentUpdate(update.data);
      break;
    case 'notification':
      handleNotification(update.data);
      break;
  }
};

Server-Sent Events (SSE)ΒΆ

const eventSource = new EventSource('/api/v1/events');

eventSource.onmessage = function(event) {
  const update = JSON.parse(event.data);
  handleRealTimeUpdate(update);
};

eventSource.addEventListener('maintenance', function(event) {
  const maintenanceUpdate = JSON.parse(event.data);
  handleMaintenanceUpdate(maintenanceUpdate);
});

πŸ“– Additional ResourcesΒΆ

Support & CommunityΒΆ

ChangelogΒΆ


🎯 Getting Started¢

Quick Start GuideΒΆ

  1. Get API Credentials
  2. Sign up at Property Management Platform
  3. Navigate to Settings > API Keys
  4. Generate your first API key

  5. Test Authentication

    curl -X POST https://api.propertymgmt.com/api/v1/identity/login \
      -H "Content-Type: application/json" \
      -d '{"email": "your_email", "password": "your_password"}'
    

  6. Make Your First API Call

    curl -X GET https://api.propertymgmt.com/api/v1/properties \
      -H "Authorization: Bearer YOUR_JWT_TOKEN"
    

  7. Explore the API

  8. Use the Interactive API Explorer
  9. Download the Postman Collection
  10. Check out Code Examples

Next StepsΒΆ


This documentation is continuously updated. For the latest version, visit docs.propertymgmt.com