Can Interact

Can interact

Can interact use past interactions, current borrower status, loan status and relevant compliance rules to make a decision if you can interact with a borrower.

You can provide contact details in two ways:

  • contactId/externalContactId - a reference an existing contact of the borrower.
  • contactDetails - new contact information. If we are able to match the new information to one of the existing contacts we will not create the new contact information. Otherwise, we'll create the new contact information.
Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

Request Body schema: application/json
One of:

The common parameters of a request to determine whether the interaction is allowed based on the history of interactions with a borrower and the associated cases.

Either a theme or subject is required.

loanId
string

An identifier of a loan to track interactions for. This can either be Peach's or a lender's external identifier.

loanIds
Array of strings

Identifiers of loans to track interactions for. This can either be Peach's or a lender's external identifier.

channel
required
string (InteractionChannel)

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"
subject
string (InteractionSubject)

The subject of the interaction. This is relevant only if the interaction was rendered from a Peach template.

Enum: "annualPrivacyPolicyNotice" "autopayAgreement" "autopayAmountChanged" "autopayCanceledBySystem" "autopayEnabled" "autopayEnableReminder" "autopayPaymentCanceled" "autopayPaymentMethodUpdated" "autopayPaymentReminder" "autopayPaymentRescheduled" "cardExpiresReminder" "caseEscalation" "ceaseCommunicationAcknowledgement" "ceaseCommunicationRefuseToPay" "confirmationCode" "contactTakeover" "creditNegativeInfoReported" "creditPositiveInfoReported" "custom1" "custom2" "custom3" "custom4" "custom5" "custom6" "custom7" "custom8" "custom9" "custom10" "custom11" "custom12" "custom13" "custom14" "custom15" "custom16" "custom17" "custom18" "custom19" "custom20" "debtValidationNotice" "debtValidationNoticeArizona" "debtValidationNoticeAutomatic" "debtValidationNoticeNYCYonkers" "debtValidationNoticePuertoRico" "deceasedConfirmationOfPayoff" "deceasedNoticeToRepresentative" "deceasedNotificationUponDeath" "disputeOfDebtConfirmed" "disputeOfDebtSubmitDocumentation" "disputeOfDebtSubmitDocumentationReminder" "disputeOfDebtUnableToConfirm" "disputeOfDebtUnableToResolve" "documentUploadFailed" "downpaymentFailed" "drawFundsDisclosure" "electronicConsentOptOut" "failedSettlementInvestor" "failedSettlementPeach" "freeForm" "freeFormBranded" "futurepayCanceled" "futurepayPaymentDueReminder" "identityTheftIncompleteDocumentation" "identityTheftNotValidated" "identityTheftSubmitDocumentation" "identityTheftSubmitDocumentationFirstReminder" "identityTheftSubmitDocumentationSecondReminder" "identityTheftValidated" "loanAccelerated" "loanCanceled" "loanChargedOffUnsecured" "loanDetails" "loanFeeCharged" "loanFreeze" "loanManualPaymentDisclosure" "loanOverdueFifthNotice" "loanOverdueFirstNotice" "loanOverdueFourthNotice" "loanOverdueSecondNotice" "loanOverdueSixthNotice" "loanOverdueThirdNotice" "loanPaidOff" "loanPaymentScheduleChanged" "loanPayoffStatement" "loanRefundProcessed" "loanRightToCurePersonalUnsecured" "loanTermsChangeAgreement" "loanUnfreeze" "locCreditLimitChanged" "locInterestRateChanged" "locLineClosed" "locStatementGenerated" "locStatementRegenerated" "loginFirstPaymentReminder" "microdepositFailed" "microdepositProcessing" "microdepositReminder" "oneTimeCode" "paydayConsumerRightsNotice" "paydayFirstPaymentWithdrawal" "paymentDueDateReminder" "paymentFailed" "paymentProcessing" "paymentRescheduled" "paymentReversalFailed" "paymentReversalProcessing" "paymentSuccessful" "payoffStatementDocument" "promoProgramCanceled" "promoProgramEligibilityAtRisk" "promoProgramExercised" "promoProgramReminder" "reimbursementFailed" "reimbursementProcessed" "reimbursementScheduled" "scraApplicationDenied" "scraBenefitsApplied" "scraBenefitsExpiringNotice" "scraCGFlaggedDocumentRequest" "scraServicemanNotifiedDocumentRequest" "settlementOffer" "settlementOfferFirstReminder" "statement" "statementLOC" "unmonitoredEmailAddress" "updateBankAccountConnection" "null"
theme
string (InteractionTheme)

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: "agentNotification" "opsCollDebt" "opsCollLocateBorrower" "opsCollVerifyEmployment" "opsCollContactEmployerNotice" "opsLoanTimeBarredNotice" "opsLoanValidationOfDebtNotice" "opsServicingDebtValidation" "opsServicingNegativeCreditReportNotice" "opsServicingTimeBarredNotice" "opsServicingVerificationOfDebt" "opsServicing" "opsAccountCredentials" "inbMissingFeature" "inbEducation" "inbBug" "inbRequest" "inbHumanLove" "inbUnknown" "inbOther"
checkAtCompanyNoon
boolean

If true, do time-based checks based on noon today, instead of now. This does not override other reasons a check can fail: the borrower having a Do Not Interact in place, having reached the interaction frequency limit, etc. This is useful for generating borrower campaigns in the morning to be carried out during business hours.

Where possible, it’s always better to check permission right before an action. Many things can change (payments are made, other automated interactions are sent, consents/addresses can be updated) from when you plan something to happen to when it actually happens. Lenders are responsible for ensuring it is still permissible to conduct the interaction.

isAutodialed
boolean or null
Default: false

true if an interaction is prerecorded or autodialed call. This attribute is relevant when channel=voice. If no value is passed, we'll assume isAutodialed=false (meaning manual call). If isAutodialed=true and the contact's consentAutodialedCall=false we'll return result=false. For more information read Telephone Consumer Protection Act (TCPA).

contactId
required
string

An identifier of an existing contact.

contactExternalId
string

The lender's identifier of the contact information.

Responses
200

Success

post/people/{personId}/can-interact
Request samples
application/json
{
  • "loanId": "string",
  • "loanIds": [
    ],
  • "channel": "voice",
  • "subject": "annualPrivacyPolicyNotice",
  • "theme": "agentNotification",
  • "checkAtCompanyNoon": true,
  • "isAutodialed": false,
  • "contactId": "string",
  • "contactExternalId": "string"
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Request sandbox access