Bearer Auth
API keys in Settings → API. vt_live_* for production, vt_test_* for sandbox.
Rate Limits
100 requests/minute per API key. Headers: X-RateLimit-Limit, X-RateLimit-Remaining.
Signed Webhooks
HMAC-SHA256 signature on every payload. Automatic exponential backoff retry on failure.
OpenAPI 3.0
Full specification at /openapi.yaml. Use openapi-generator to create SDKs in any language.
All API requests require a Bearer token API key. Get your key from Dashboard > Settings > API Keys.
Base URL: https://villa-tax.operium.store/api/v1 Auth: Authorization: Bearer vt_live_YOUR_API_KEY Sandbox: Bearer vt_test_YOUR_KEY (returns testMode: true)
Rate limited to 100 requests/minute per API key. Headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
// Authenticate with Bearer token
const headers = {
'Authorization': 'Bearer vt_live_YOUR_API_KEY',
'Content-Type': 'application/json'
};
// List your properties
const res = await fetch(
'https://villa-tax.operium.store/api/v1/properties?organizationId=YOUR_ORG_ID',
{ headers }
).then(r => r.json());
// { data: [...], testMode: false, meta: { total: 5, page: 1, limit: 20 } }
// Create a booking + auto tax calculation
const booking = await fetch('https://villa-tax.operium.store/api/v1/bookings', {
method: 'POST', headers,
body: JSON.stringify({
propertyId: 'prop-uuid',
guestName: 'Alice Martin',
checkIn: '2025-06-15',
checkOut: '2025-06-22',
grossAmountIdr: 14000000,
platform: 'airbnb'
})
}).then(r => r.json());
// { data: { id: '...', taxBreakdowns: [{ type:'PBJT', rate:0.10, ... }] }, testMode: false }/v1/organizations/v1/organizations/{id}/v1/properties/v1/properties/v1/properties/{id}/v1/bookings/v1/bookings/v1/bookings/{id}/v1/tax-summary/v1/webhooks/endpoints/v1/webhooks/endpoints/v1/webhooks/endpoints/{id}SDKs for Node.js and Python, Coming Q3 2026
Configure your webhooks from Dashboard > Integrations > Webhooks
booking.createdNew booking received
booking.updatedBooking modified
tax.calculatedTax calculation completed
report.generatedFiscal report generated
HMAC-SHA256
All webhook payloads are signed with HMAC-SHA256. Verify the X-VillaTax-Signature header using your endpoint secret.
Channel Manager Integration
Push bookings from your PMS or channel manager. Tax calculations fire automatically. Build your own reporting layer on top.
Property Management Software
Embed fiscal compliance directly into your property management product. Your clients get Indonesian tax compliance without leaving your app.
Automated Fiscal Reporting
Pull tax summaries via API to generate monthly PBJT, PPh, and PPN reports automatically. Export to your accounting system with clean JSON.