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
Contact Events
Customer contact creation and management events.
Application Events
Loan application lifecycle events.
Document Events
Document upload and processing events.
Contact Events
contact.created
Emitted when a new customer contact is created in Slate POV Platform.
Copy
{
event: "contact.created",
timestamp: string, // ISO 8601
source: "homestar_pov_platform",
data: {
slatePrimaryContactId: string,
email: string,
firstName: string,
lastName: string,
phoneNumber: string
}
}
Copy
{
"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.
Copy
{
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
}
}
}
}
Copy
{
"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.
Copy
{
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
}
}
}
}
Copy
{
"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.
Copy
{
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">
}
}
Copy
{
"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.
Copy
{
event: "application.requires_review",
timestamp: string, // ISO 8601
source: "homestar_pov_platform",
data: {
slatePrimaryContactId: string,
slateApplicationId: string,
status: "RequiresReview",
notes?: string,
assignedTo?: string[]
}
}
Copy
{
"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.
Copy
{
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
}
}
Copy
{
"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.
Copy
{
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
}
}
Copy
{
"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.
Copy
{
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
}
}
Copy
{
"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.
Copy
{
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
}
}
Copy
{
"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.
Copy
{
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
}
}
}
Copy
{
"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.
Copy
{
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"
}
}
}
Copy
{
"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.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.
