> ## Documentation Index
> Fetch the complete documentation index at: https://docs.homestar.goslate.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Events

> Complete reference of all webhook events emitted by Slate POV Platform

# Webhook Events

This page provides a complete reference of all webhook events emitted by the Slate POV Platform platform, including their payload structures and usage examples.

## Event Payload

The payload carries a JSON object. You can then use the information from the request's JSON payload to trigger actions in your app, such as sending a notification or updating a database.

## Event Categories

<CardGroup cols={2}>
  <Card title="Contact Events" href="#contact-events" icon="user">
    Customer contact creation and management events.
  </Card>

  <Card title="Application Events" href="#application-events" icon="clipboard">
    Loan application lifecycle events.
  </Card>

  <Card title="Document Events" href="#document-events" icon="upload">
    Document upload and processing events.
  </Card>
</CardGroup>

## Contact Events

### `contact.created`

Emitted when a new customer contact is created in Slate POV Platform.

```javascript theme={null}
{
  event: "contact.created",
  timestamp: string, // ISO 8601
  source: "homestar_pov_platform",
  data: {
    slatePrimaryContactId: string,
    email: string,
    firstName: string,
    lastName: string,
    phoneNumber: string
  }
}
```

```json theme={null}
{
  "event": "contact.created",
  "timestamp": "2024-01-15T10:30:00Z",
  "source": "homestar_pov_platform",
  "data": {
    "slatePrimaryContactId": "user_29w83sxmDNGwOuEthce5gg56FcC",
    "email": "john.doe@example.com",
    "firstName": "John",
    "lastName": "Doe",
    "phoneNumber": "+61412345678"
  }
}
```

## Application Events

### `application.started`

Emitted when a customer starts the loan application process.

```javascript theme={null}
{
  event: "application.started",
  timestamp: string, // ISO 8601
  source: "homestar_pov_platform",
  data: {
    slatePrimaryContactId: string,
    slateApplicationId: string,
    status: "Draft",
    applicationData: {
      propertyDetails: {
        addressString: string,
        customerValuationAmount: number, // Cents
        propertyType: "residential"
      },
      loanDetails: {
        purpose: "refinance",
        termYears: number,
        propertyValuation: number, // Cents
        totalLoanAmount: number, // Cents
        lvr: number,
        interestRate: number,
        repaymentType: "PrincipalAndInterest",
        interestRateType: "Variable",
        repaymentAmountMonthly: number, // Cents
        productName: string
      }
    }
  }
}
```

```json theme={null}
{
  "event": "application.started",
  "timestamp": "2024-01-15T10:30:00Z",
  "source": "homestar_pov_platform",
  "data": {
    "slatePrimaryContactId": "user_29w83sxmDNGwOuEthce5gg56FcC",
    "slateApplicationId": "app_123456789",
    "status": "Draft",
    "applicationData": {
      "propertyDetails": {
        "addressString": "123 Main St, Sydney NSW 2000",
        "customerValuationAmount": 80000000,
        "propertyType": "residential"
      },
      "loanDetails": {
        "purpose": "refinance",
        "termYears": 30,
        "propertyValuation": 80000000,
        "totalLoanAmount": 64000000,
        "lvr": 80,
        "interestRate": 6.5,
        "repaymentType": "PrincipalAndInterest",
        "interestRateType": "Variable",
        "repaymentAmountMonthly": 404500,
        "productName": "Standard Variable Rate"
      }
    }
  }
}
```

### `application.submitted`

Emitted when a loan application is submitted for review.

```javascript theme={null}
{
  event: "application.submitted",
  timestamp: string, // ISO 8601
  source: "homestar_pov_platform",
  data: {
    slatePrimaryContactId: string,
    slateApplicationId: string,
    status: "Submitted",
    applicationData: {
      primaryApplicant: {
        customerUserId: string,
        firstName: string,
        lastName: string,
        email: string,
        phoneNumber: string,
        dateOfBirth: string, // ISO 8601
        citizenshipStatus: "AustralianCitizen" | "AustralianPermanentResident" | "ForeignCitizen" | "NewZealandCitizenNotAusPR",
        maritalStatus: "Single" | "Married" | "Divorced" | "Widowed"
      },
      secondaryApplicant?: {
        customerUserId: string,
        firstName: string,
        lastName: string,
        email: string,
        phoneNumber: string,
        dateOfBirth: string, // ISO 8601
        citizenshipStatus: "AustralianCitizen" | "AustralianPermanentResident" | "ForeignCitizen" | "NewZealandCitizenNotAusPR",
        maritalStatus: "Single" | "Married" | "Divorced" | "Widowed",
        relationshipToPrimary: "Partner" | "FamilyOrFriend" | "Other"
      },
      propertyDetails: {
        addressString: string,
        customerValuationAmount: number, // Cents
        finalValuationAmount: number, // Cents
        propertyType: "residential"
      },
      loanDetails: {
        purpose: "refinance",
        termYears: number,
        propertyValuation: number, // Cents
        totalLoanAmount: number, // Cents
        lvr: number,
        interestRate: number,
        repaymentType: "PrincipalAndInterest",
        interestRateType: "Variable",
        repaymentAmountMonthly: number, // Cents
        productName: string
      }
    }
  }
}
```

```json theme={null}
{
  "event": "application.submitted",
  "timestamp": "2024-01-15T10:30:00Z",
  "source": "homestar_pov_platform",
  "data": {
    "slatePrimaryContactId": "user_29w83sxmDNGwOuEthce5gg56FcC",
    "slateApplicationId": "app_123456789",
    "status": "Submitted",
    "applicationData": {
      "primaryApplicant": {
        "customerUserId": "user_29w83sxmDNGwOuEthce5gg56FcC",
        "firstName": "John",
        "lastName": "Doe",
        "email": "john.doe@example.com",
        "phoneNumber": "+61412345678",
        "dateOfBirth": "1985-06-15",
        "citizenshipStatus": "AustralianCitizen",
        "maritalStatus": "Married"
      },
      "secondaryApplicant": {
        "customerUserId": "user_987654321",
        "firstName": "Jane",
        "lastName": "Doe",
        "email": "jane.doe@example.com",
        "phoneNumber": "+61487654321",
        "dateOfBirth": "1987-03-22",
        "citizenshipStatus": "AustralianCitizen",
        "maritalStatus": "Married",
        "relationshipToPrimary": "Partner"
      },
      "propertyDetails": {
        "addressString": "123 Main St, Sydney NSW 2000",
        "customerValuationAmount": 80000000,
        "finalValuationAmount": 82000000,
        "propertyType": "residential"
      },
      "loanDetails": {
        "purpose": "refinance",
        "termYears": 30,
        "propertyValuation": 82000000,
        "totalLoanAmount": 65600000,
        "lvr": 80,
        "interestRate": 6.5,
        "repaymentType": "PrincipalAndInterest",
        "interestRateType": "Variable",
        "repaymentAmountMonthly": 414700,
        "productName": "Standard Variable Rate"
      }
    }
  }
}
```

### `application.pending_information`

Emitted when an application requires more information from the customer.

```javascript theme={null}
{
  event: "application.pending_information",
  timestamp: string, // ISO 8601
  source: "homestar_pov_platform",
  data: {
    slatePrimaryContactId: string,
    slateApplicationId: string,
    status: "PendingInformation",
    notes?: string,
    assignedTo?: string[],
    requiredTasks?: Array<"Questionnaire" | "PersonalDetails" | "CurrentLoanMortgageDocuments" | "ApplicantIncomeDocuments" | "ApplicantIdentityVerification" | "VisaLetter" | "ExitStrategyLetter" | "RequestMoreInfo">
  }
}
```

```json theme={null}
{
  "event": "application.pending_information",
  "timestamp": "2024-01-15T10:30:00Z",
  "source": "homestar_pov_platform",
  "data": {
    "slatePrimaryContactId": "user_29w83sxmDNGwOuEthce5gg56FcC",
    "slateApplicationId": "app_123456789",
    "status": "PendingInformation",
    "notes": "Additional income verification required",
    "assignedTo": ["analyst_001", "manager_002"],
    "requiredTasks": ["ApplicantIncomeDocuments", "Questionnaire"]
  }
}
```

### `application.requires_review`

Emitted when an application requires internal review.

```javascript theme={null}
{
  event: "application.requires_review",
  timestamp: string, // ISO 8601
  source: "homestar_pov_platform",
  data: {
    slatePrimaryContactId: string,
    slateApplicationId: string,
    status: "RequiresReview",
    notes?: string,
    assignedTo?: string[]
  }
}
```

```json theme={null}
{
  "event": "application.requires_review",
  "timestamp": "2024-01-15T10:30:00Z",
  "source": "homestar_pov_platform",
  "data": {
    "slatePrimaryContactId": "user_29w83sxmDNGwOuEthce5gg56FcC",
    "slateApplicationId": "app_123456789",
    "status": "RequiresReview",
    "notes": "High LVR application requires manual review",
    "assignedTo": ["senior_analyst_001"]
  }
}
```

### `application.pre_approved`

Emitted when an application is pre-approved.

```javascript theme={null}
{
  event: "application.pre_approved",
  timestamp: string, // ISO 8601
  source: "homestar_pov_platform",
  data: {
    slatePrimaryContactId: string,
    slateApplicationId: string,
    status: "PreApproved",
    propertyDetails: {
      addressString: string,
      customerValuationAmount: number, // Cents
      finalValuationAmount: number, // Cents
      propertyType: "residential"
    },
    loanDetails: {
      purpose: "refinance",
      termYears: number,
      propertyValuation: number, // Cents
      totalLoanAmount: number, // Cents
      lvr: number,
      interestRate: number,
      repaymentType: "PrincipalAndInterest",
      interestRateType: "Variable",
      repaymentAmountMonthly: number, // Cents
      productName: string
    },
    preApprovedAt: string, // ISO 8601
    preApprovedByName: string,
    preApprovalNotes?: string,
    conditions?: Array<{
      description: string,
      status: "pending" | "completed" | "deleted"
    }>,
    notes?: string
  }
}
```

```json theme={null}
{
  "event": "application.pre_approved",
  "timestamp": "2024-01-15T10:30:00Z",
  "source": "homestar_pov_platform",
  "data": {
    "slatePrimaryContactId": "user_29w83sxmDNGwOuEthce5gg56FcC",
    "slateApplicationId": "app_123456789",
    "status": "PreApproved",
    "propertyDetails": {
      "addressString": "123 Main St, Sydney NSW 2000",
      "customerValuationAmount": 80000000,
      "finalValuationAmount": 82000000,
      "propertyType": "residential"
    },
    "loanDetails": {
      "purpose": "refinance",
      "termYears": 30,
      "propertyValuation": 82000000,
      "totalLoanAmount": 65600000,
      "lvr": 80,
      "interestRate": 6.5,
      "repaymentType": "PrincipalAndInterest",
      "interestRateType": "Variable",
      "repaymentAmountMonthly": 414700,
      "productName": "Standard Variable Rate"
    },
    "preApprovedAt": "2024-01-15T14:30:00Z",
    "preApprovedByName": "Sarah Johnson",
    "preApprovalNotes": "Subject to final valuation and income verification",
    "conditions": [
      {
        "description": "Final property valuation required",
        "status": "pending"
      },
      {
        "description": "Income verification documents",
        "status": "pending"
      }
    ]
  }
}
```

### `application.fully_approved`

Emitted when an application is fully approved.

```javascript theme={null}
{
  event: "application.fully_approved",
  timestamp: string, // ISO 8601
  source: "homestar_pov_platform",
  data: {
    slatePrimaryContactId: string,
    slateApplicationId: string,
    status: "FullyApproved",
    propertyDetails: {
      addressString: string,
      customerValuationAmount: number, // Cents
      finalValuationAmount: number, // Cents
      propertyType: "residential"
    },
    loanDetails: {
      purpose: "refinance",
      termYears: number,
      propertyValuation: number, // Cents
      totalLoanAmount: number, // Cents
      lvr: number,
      interestRate: number,
      repaymentType: "PrincipalAndInterest",
      interestRateType: "Variable",
      repaymentAmountMonthly: number, // Cents
      productName: string
    },
    fullyApprovedAt: string, // ISO 8601
    fullyApprovedByName: string,
    notes?: string,
    assignedTo?: string[],
    fullyApprovedNotes?: string
  }
}
```

```json theme={null}
{
  "event": "application.fully_approved",
  "timestamp": "2024-01-15T10:30:00Z",
  "source": "homestar_pov_platform",
  "data": {
    "slatePrimaryContactId": "user_29w83sxmDNGwOuEthce5gg56FcC",
    "slateApplicationId": "app_123456789",
    "status": "FullyApproved",
    "propertyDetails": {
      "addressString": "123 Main St, Sydney NSW 2000",
      "customerValuationAmount": 80000000,
      "finalValuationAmount": 82000000,
      "propertyType": "residential"
    },
    "loanDetails": {
      "purpose": "refinance",
      "termYears": 30,
      "propertyValuation": 82000000,
      "totalLoanAmount": 65600000,
      "lvr": 80,
      "interestRate": 6.5,
      "repaymentType": "PrincipalAndInterest",
      "interestRateType": "Variable",
      "repaymentAmountMonthly": 414700,
      "productName": "Standard Variable Rate"
    },
    "fullyApprovedAt": "2024-01-16T09:15:00Z",
    "fullyApprovedByName": "Michael Chen",
    "fullyApprovedNotes": "All conditions satisfied, loan approved for settlement",
    "assignedTo": ["settlement_team_001"]
  }
}
```

### `application.declined`

Emitted when an application is declined.

```javascript theme={null}
{
  event: "application.declined",
  timestamp: string, // ISO 8601
  source: "homestar_pov_platform",
  data: {
    slatePrimaryContactId: string,
    slateApplicationId: string,
    status: "Declined",
    declinedAt: string, // ISO 8601
    declinedById: string,
    declinedByName: string,
    notes?: string,
    assignedTo?: string[],
    rejectionReason?: string,
    rejectionNotes?: string
  }
}
```

```json theme={null}
{
  "event": "application.declined",
  "timestamp": "2024-01-15T10:30:00Z",
  "source": "homestar_pov_platform",
  "data": {
    "slatePrimaryContactId": "user_29w83sxmDNGwOuEthce5gg56FcC",
    "slateApplicationId": "app_123456789",
    "status": "Declined",
    "declinedAt": "2024-01-15T16:45:00Z",
    "declinedById": "analyst_003",
    "declinedByName": "David Wilson",
    "rejectionReason": "Insufficient income to service loan",
    "rejectionNotes": "Applicant's income does not meet minimum servicing requirements for the requested loan amount",
    "assignedTo": ["customer_service_001"]
  }
}
```

### `application.ineligible`

Emitted when an application is marked as ineligible.

```javascript theme={null}
{
  event: "application.ineligible",
  timestamp: string, // ISO 8601
  source: "homestar_pov_platform",
  data: {
    slatePrimaryContactId: string,
    slateApplicationId: string,
    status: "Ineligible",
    closedAt: string, // ISO 8601
    closedById: string,
    closedByName: string,
    notes?: string,
    assignedTo?: string[],
    closedReason: "IneligiblePaymentHistory" | "IneligibleBufferedBalance" | "IneligibleOther",
    closedNotes?: string
  }
}
```

```json theme={null}
{
  "event": "application.ineligible",
  "timestamp": "2024-01-15T10:30:00Z",
  "source": "homestar_pov_platform",
  "data": {
    "slatePrimaryContactId": "user_29w83sxmDNGwOuEthce5gg56FcC",
    "slateApplicationId": "app_123456789",
    "status": "Ineligible",
    "closedAt": "2024-01-15T11:20:00Z",
    "closedById": "system_001",
    "closedByName": "Automated System",
    "closedReason": "IneligiblePaymentHistory",
    "closedNotes": "Applicant has recent payment defaults on credit report",
    "assignedTo": ["compliance_team_001"]
  }
}
```

## Document Events

### `document.uploaded`

Emitted when a document is uploaded to an application.

```javascript theme={null}
{
  event: "document.uploaded",
  timestamp: string, // ISO 8601
  source: "homestar_pov_platform",
  data: {
    slatePrimaryContactId: string,
    slateApplicationId: string,
    documentId: string,
    documentType: "Payslip" | "PropertyRentalIncome" | "MortgageStatement" | "PropertyTitleSearch" | "IdentityVerification" | "PropertyValuation" | "VisaCertificate" | "VisaLetter" | "ExitStrategyLetter" | "PreApprovalLetter" | "FullApprovalLetter" | "CreditReport" | "RatesNotice",
    fileName: string,
    fileSize: number,
    mimeType: string,
    uploadedBy: string,
    metadata?: {
      assignedUserId?: string,
      documentCategory?: string
    }
  }
}
```

```json theme={null}
{
  "event": "document.uploaded",
  "timestamp": "2024-01-15T10:30:00Z",
  "source": "homestar_pov_platform",
  "data": {
    "slatePrimaryContactId": "user_29w83sxmDNGwOuEthce5gg56FcC",
    "slateApplicationId": "app_123456789",
    "documentId": "doc_987654321",
    "documentType": "Payslip",
    "fileName": "payslip_january_2024.pdf",
    "fileSize": 245760,
    "mimeType": "application/pdf",
    "uploadedBy": "user_29w83sxmDNGwOuEthce5gg56FcC",
    "metadata": {
      "assignedUserId": "analyst_001",
      "documentCategory": "Income Verification"
    }
  }
}
```

## Task Events

### `task.completed`

Emitted when a customer completes a required task.

```javascript theme={null}
{
  event: "task.completed",
  timestamp: string, // ISO 8601
  source: "homestar_pov_platform",
  data: {
    slatePrimaryContactId: string,
    slateApplicationId: string,
    taskType: "Questionnaire" | "PersonalDetails" | "CurrentLoanMortgageDocuments" | "ApplicantIncomeDocuments" | "ApplicantIdentityVerification" | "VisaLetter" | "ExitStrategyLetter" | "RequestMoreInfo",
    completedAt: string, // ISO 8601
    metadata?: {
      documentsUploaded?: number,
      verificationStatus?: "Pending" | "Completed" | "Failed" | "NeedsReview" | "Approved" | "Rejected"
    }
  }
}
```

```json theme={null}
{
  "event": "task.completed",
  "timestamp": "2024-01-15T10:30:00Z",
  "source": "homestar_pov_platform",
  "data": {
    "slatePrimaryContactId": "user_29w83sxmDNGwOuEthce5gg56FcC",
    "slateApplicationId": "app_123456789",
    "taskType": "ApplicantIncomeDocuments",
    "completedAt": "2024-01-15T14:20:00Z",
    "metadata": {
      "documentsUploaded": 3,
      "verificationStatus": "Pending"
    }
  }
}
```

## Data Types

### Currency Values

All monetary values are stored in **cents** (e.g., \$100,000 = 10000000) to avoid floating-point precision issues.

### Dates

All dates are in **ISO 8601** format (e.g., "2024-01-15T10:30:00Z").

### Status Enums

The platform uses specific status enums that should be used exactly as defined in the event schemas above.

<Info>
  **Note**: All webhook events include the standard payload structure with `event`, `timestamp`, `source`, and `data` fields. The examples above focus on the `data` portion for clarity.
</Info>
