Notification Types

This object allow you to create custom Notification Types which will create interaction instances (such as emails, text messages, etc.) automatically when case conditions are met. For example, when a new bankruptcy case is initiated, the system can automatically send an email notification and ask the borrower to provide supporting documents.

The conditions are set in the following way. There are two triggers and one condition fields that you can configure:

  1. onStatus - triggered based on the case status.
  2. onOutcome - triggered based on the case outcome.
  3. onCondition - condition(s) based on case fields values.

You must provide at least one trigger, onStatus or onOutcome, when creating a new Notification Type object.

Few examples:

  • onStatus=processing, onOutcome=null, onCondition=null - the interaction instance will be created when the case status is changed to processing.
  • onStatus=completed, onOutcome=approved, onCondition=null - the interaction instance will be created when the case status is changed to completed and the outcome is approved.

Notification Types must be associated with Case Types. A Notification Type object can be associated with multiple Case Types.

Create type

Create a new type configuration for triggering notifications.

Securityoauth2 or bearerAuth or apiKeyHeader
Request
query Parameters
typeId
integer <int32>

Optional argument. If provided, will create a new type from the specificied typeId.

version
integer <int32>

Optional argument. If provided, the action will be performed on the specified version.

Request Body schema: application/json
name
string <= 50 characters
Default: ""

The default name for instances of that type. The name could be shown in UI.

description
string <= 500 characters
Default: ""

The description for instances of that type. The description could be shown in UI.

status
string
Default: "draft"

The type status. A new type is normally created in the draft status. After you finish with the type configurations and ready to create instances of that type, update the status to active.

You can also update an existing type. Each update will create a new version of the type. Only one version of the type can be active. We'll automatically change the previous version to deprecated. Instances in-flight will continue to use the previous version(s). New instances will be created using the active version.

Enum: "draft" "active" "deprecated"
onStatus
string or null (status)

The status of a process. This can be updated by a lender or by Peach.

initiated - The lender was notified by a borrower, but no documents or evidence have been provided yet. A grace period can be set.

processing - Peach matched the borrower to an external data source, or the lender started an internal process to handle a case, complaint or dispute.

completed - The lender completed an internal process, case, complaint or dispute. For example:

  • A borrower reported identity theft, and the lender reviewed documents and approved the claim.
  • A borrower requested a verification of debt in writing, and the lender sent an email with details.
  • Peach notified the lender about a new bankruptcy, and the lender reviewed the case and deemed it to be a false positive.

canceled - The lender couldn't complete an internal process and canceled it. This can happen for various reasons, such as lack of sufficient documentation.

reopened - The lender re-opened the case.

Enum: "initiated" "processing" "completed" "canceled" "reopened"
onOutcome
string or null (outcome)

The outcome of a process, case, complaint, or dispute.

  • If found to be valid, set value to approved. This might impact debt collection efforts.
  • If dismissed, set value to denied. This will have no further impact on debt collection efforts.
  • If found to be a false positive, set value to falsePositive.
  • If completed without an outcome (or no outcome was needed), set to noOutcome.
Enum: "approved" "denied" "falsePositive" "noOutcome"
Array of objects or null

Array of conditions for case fields values. and operator is used if multiple conditions are provided. For example:

  • A bankruptcy case has two fields, chapter and dispositionCode.
  • If two conditions are created: first chapter=chapter17, second dispositionCode=dismissed.
  • The logical condition will look like: chapter=chapter17 and dispositionCode=dismissed.
channel
string or null

The channel where interactions with a borrower occur. For example, an outbound call with a borrower is considered voice.

Enum: "voice" "email" "fax" "text" "chat" "mail" "gui" "document"
theme
string or null

The reason why an interaction occurred.

For example:

  • An outbound debt collection call should be marked as opsCollDebt.
  • An annual privacy policy update email should be marked as opsServicing.
  • A customer service response to borrower's inquiry should be marked as opsServicing.
  • Statements or payment reminders should be marked as outOpsLoan.
Enum: "opsCollDebt" "opsCollLocateBorrower" "opsCollVerifyEmployment" "opsCollContactEmployerNotice" "opsLoanTimeBarredNotice" "opsLoanValidationOfDebtNotice" "opsServicingDebtValidation" "opsServicingNegativeCreditReportNotice" "opsServicingTimeBarredNotice" "opsServicingVerificationOfDebt" "opsServicing" "opsAccountCredentials" "inbMissingFeature" "inbEducation" "inbBug" "inbRequest" "inbHumanLove" "inbUnknown" "inbOther"
templateId
integer or null

Communication template identifier to create and send notification.

delay
integer or null

Length of time after a triggering condition to wait before sending notification.

unit
string or null

Time units for setting the delay time.

Enum: "calendarDays" "businessDays"
Responses
200

Success

post/notification-types
Request samples
application/json
{
  • "name": "",
  • "description": "",
  • "status": "draft",
  • "onStatus": "initiated",
  • "onOutcome": "approved",
  • "onCondition": [
    ],
  • "channel": "voice",
  • "theme": "opsCollDebt",
  • "templateId": 0,
  • "delay": 0,
  • "unit": "calendarDays"
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Get types

Securityoauth2 or bearerAuth or apiKeyHeader
Request
query Parameters
loanTypeId
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

Use this to limit results to a specific lender product.

limit
integer [ 1 .. 100 ]
Default: 25

The maximum count of results to retrieve.

startingAfter
string

Return results starting after the provided object identifier.

endingBefore
string

Return results ending before the provided object identifier.

Responses
200

Success

get/notification-types
Response samples
application/json
{
  • "count": 0,
  • "data": [
    ]
}

Get type by ID

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
notificationTypeId
required
integer

The Notification Type unique identifier.

query Parameters
version
integer <int32>

Optional argument. If provided, the action will be performed on the specified version.

Responses
200

Success

get/notification-types/{notificationTypeId}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Update type

Change the triggering conditions and settings of a draft type, or update the status of an active type to deprecated.

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
notificationTypeId
required
integer

The Notification Type unique identifier.

query Parameters
version
integer <int32>

Optional argument. If provided, the action will be performed on the specified version.

Request Body schema: application/json
name
string <= 50 characters
Default: ""

The default name for instances of that type. The name could be shown in UI.

description
string <= 500 characters
Default: ""

The description for instances of that type. The description could be shown in UI.

status
string
Default: "draft"

The type status. A new type is normally created in the draft status. After you finish with the type configurations and ready to create instances of that type, update the status to active.

You can also update an existing type. Each update will create a new version of the type. Only one version of the type can be active. We'll automatically change the previous version to deprecated. Instances in-flight will continue to use the previous version(s). New instances will be created using the active version.

Enum: "draft" "active" "deprecated"
onStatus
string or null (status)

The status of a process. This can be updated by a lender or by Peach.

initiated - The lender was notified by a borrower, but no documents or evidence have been provided yet. A grace period can be set.

processing - Peach matched the borrower to an external data source, or the lender started an internal process to handle a case, complaint or dispute.

completed - The lender completed an internal process, case, complaint or dispute. For example:

  • A borrower reported identity theft, and the lender reviewed documents and approved the claim.
  • A borrower requested a verification of debt in writing, and the lender sent an email with details.
  • Peach notified the lender about a new bankruptcy, and the lender reviewed the case and deemed it to be a false positive.

canceled - The lender couldn't complete an internal process and canceled it. This can happen for various reasons, such as lack of sufficient documentation.

reopened - The lender re-opened the case.

Enum: "initiated" "processing" "completed" "canceled" "reopened"
onOutcome
string or null (outcome)

The outcome of a process, case, complaint, or dispute.

  • If found to be valid, set value to approved. This might impact debt collection efforts.
  • If dismissed, set value to denied. This will have no further impact on debt collection efforts.
  • If found to be a false positive, set value to falsePositive.
  • If completed without an outcome (or no outcome was needed), set to noOutcome.
Enum: "approved" "denied" "falsePositive" "noOutcome"
Array of objects or null

Array of conditions for case fields values. and operator is used if multiple conditions are provided. For example:

  • A bankruptcy case has two fields, chapter and dispositionCode.
  • If two conditions are created: first chapter=chapter17, second dispositionCode=dismissed.
  • The logical condition will look like: chapter=chapter17 and dispositionCode=dismissed.
channel
string or null

The channel where interactions with a borrower occur. For example, an outbound call with a borrower is considered voice.

Enum: "voice" "email" "fax" "text" "chat" "mail" "gui" "document"
theme
string or null

The reason why an interaction occurred.

For example:

  • An outbound debt collection call should be marked as opsCollDebt.
  • An annual privacy policy update email should be marked as opsServicing.
  • A customer service response to borrower's inquiry should be marked as opsServicing.
  • Statements or payment reminders should be marked as outOpsLoan.
Enum: "opsCollDebt" "opsCollLocateBorrower" "opsCollVerifyEmployment" "opsCollContactEmployerNotice" "opsLoanTimeBarredNotice" "opsLoanValidationOfDebtNotice" "opsServicingDebtValidation" "opsServicingNegativeCreditReportNotice" "opsServicingTimeBarredNotice" "opsServicingVerificationOfDebt" "opsServicing" "opsAccountCredentials" "inbMissingFeature" "inbEducation" "inbBug" "inbRequest" "inbHumanLove" "inbUnknown" "inbOther"
templateId
integer or null

Communication template identifier to create and send notification.

delay
integer or null

Length of time after a triggering condition to wait before sending notification.

unit
string or null

Time units for setting the delay time.

Enum: "calendarDays" "businessDays"
Responses
200

Success

put/notification-types/{notificationTypeId}
Request samples
application/json
{
  • "name": "",
  • "description": "",
  • "status": "draft",
  • "onStatus": "initiated",
  • "onOutcome": "approved",
  • "onCondition": [
    ],
  • "channel": "voice",
  • "theme": "opsCollDebt",
  • "templateId": 0,
  • "delay": 0,
  • "unit": "calendarDays"
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}