/teams
Create team. Partner teams billed directly by VRPlatform and property-manager teams billed directly by VRPlatform or managed by Ximplifi have their subscription created with the team, even while onboarding. The forwarding gateway requires an explicit ap, eu, hostaway, or us dataRegion for General Ledger creation. A strict regional worker may omit dataRegion to use its own cell; an explicit region must match that cell. Crunchy placement is rejected. Hostaway property-manager teams must use the hostaway region. Non-General Ledger teams default to crunchy when dataRegion is omitted; other explicit regions are rejected. A regional worker returns 421 when the resolved region does not match its cell. Partner provisioning requires a uniqueRef. An exact repeat of a completed provision fails with 409 and context.existingTeamId identifies the existing team; changed retry payloads fail without it. Fetch that team with GET /me/teams or GET /partner/teams instead of creating it again. Retrying a provisioning request that failed before completing is safe. migratedFromTenantId atomically links a new GL team to a non-GL VRI source managed by the same partner; it is rejected for non-GL targets, GL sources, and sources managed by another partner. Generated and explicit slugs are checked against the global tenant registry and target region before either identity is published. Incomplete provisions are omitted from partner discovery. defaultCurrency must exist in the target region currency catalog; unsupported values return 400 before creation. An explicit General Ledger copyFromTeamId must use the target data region; a mismatch returns 400 before either tenant registry is written. useCentralDefaults explicitly opts into the published Control Plane bootstrap and cannot be combined with either copy source.
Required scope: teams:provision
Authorization
apiKey API key provided in dashboard
In: header
Request Body
application/json
"ap" | "crunchy" | "eu" | "hostaway" | "us""partner" | "admin" | "propertyManager"Lifecycle status derived from the team and billing-partner subscription states
"active" | "inactive"VRI source team replaced by this new GL team. The source must be a non-GL team managed by the same partner.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuid^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$emailResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.vrplatform.app/teams" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "email": "user@example.com" }'{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"uniqueRef": "string",
"dataRegion": "ap",
"storageRealm": "vrintegration",
"defaultCurrency": "string",
"longTermStayNights": 0,
"defaultRevenueRecognition": "checkIn",
"migratedFromTenantId": "cc45f885-c973-4e0e-8e0d-b63cf61a5091",
"historicalStatementsImportedAt": "2024-01-15T12:30:00.000+00:00",
"name": "string",
"slug": "string",
"statementAddress": {
"full": "string",
"line1": "string",
"line2": "string",
"city": "string",
"state": "string",
"postalCode": "string",
"stateCode": "string",
"countryCode": "string"
},
"billingAddress": {
"full": "string",
"line1": "string",
"line2": "string",
"city": "string",
"state": "string",
"postalCode": "string",
"stateCode": "string",
"countryCode": "string"
},
"phone": "string",
"email": "string",
"supportEmail": "string",
"taxId": "string",
"partner": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string"
},
"billingPartner": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string"
},
"billingPartnerId": "923c9e6a-7971-4599-a964-4e4ec88578c6",
"companyName": "string",
"type": "partner",
"status": "active",
"capabilities": {
"activate": {
"enabled": true,
"disabledReasons": [
"teamBillingSubscriptionInactive"
]
}
},
"billingSubscriptionStatus": "string",
"billingPlan": "string",
"billingPaymentMethodType": "string",
"billingCustomerId": "string",
"colorPrimary": "string",
"createdAt": "2024-01-15T12:30:00.000+00:00",
"updatedAt": "2024-01-15T12:30:00.000+00:00",
"cancelledAt": "string",
"isOnboarding": true,
"issues": [
{
"code": "unassignedAccount",
"severity": "error",
"context": {
"accountIds": [
"string"
]
}
}
],
"isGeneralLedger": true,
"isOpex": true,
"booksClosedAt": "string",
"logo": "string",
"statementStartAt": "string",
"effectiveStatementStartAt": "string",
"settings": {
"showVRPilotGuide": true,
"showReservations": true,
"showCancelledReservations": true,
"showReservationTotal": true,
"showOwnerCalendarBlocking": true,
"showTaxStatements": true,
"showTwoFactorAuth": true
},
"ownerPortalShowDraftStatements": true,
"members": [
{
"userId": "string",
"email": "string",
"role": "string",
"name": "string",
"firstName": "string",
"lastName": "string"
}
],
"extractableConnections": {
"property1": {
"connections": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"appId": "string",
"urlExample": "string",
"allowConfirmationCode": true
}
]
},
"property2": {
"connections": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"appId": "string",
"urlExample": "string",
"allowConfirmationCode": true
}
]
}
},
"enabledFeatures": [
{
"featureId": "317f79d2-08bf-4d22-9731-b2b5e1f0a085",
"status": "all"
}
],
"isBillable": true,
"operations": {
"counts": {
"total": 9007199254740991,
"queued": 9007199254740991,
"running": 9007199254740991,
"completed": 9007199254740991,
"failed": 9007199254740991
},
"items": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"type": "ach-verification",
"status": "queued",
"resource": {
"type": "bank-rule",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"role": "source",
"url": "http://example.com"
},
"failure": {
"code": "csvBlankHeader",
"message": "CSV contains a blank header"
},
"initiator": {
"type": "user",
"userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
},
"createdAt": "2024-01-15T12:30:00.000+00:00",
"startedAt": "2024-01-15T12:30:00.000+00:00",
"finishedAt": "2024-01-15T12:30:00.000+00:00"
}
]
},
"aggregates": {
"activeListings": 9007199254740991,
"members": 9007199254740991,
"activeConnections": 9007199254740991,
"connectionIssues": 9007199254740991,
"childTeams": 9007199254740991
}
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "MISDIRECTED_REQUEST",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": {
"teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
"dataRegion": "ap",
"apiBaseUrl": "http://example.com"
}
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "LOCKED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}