Webhooks

Allows clients to manage webhooks.

The Peach webhook system will issue POST requests with the event data as json payload.

Create webhook subscription

Creates a new webhook subscription.

Securityoauth2 or bearerAuth or apiKeyHeader
Request
Request Body schema: application/json
webhookType
required
string

Peach supports two ways of receiving webhooks:

  • direct - events will be provided directly to the url nominated by the lender, and the event data will match Peach's data format.
  • proxyGalileo - events will trigger Peach to make specific API calls to Galileo, so Galileo's sub-ledger remains in sync with Peach's ledger.

Note: when setting webhookType as proxyGalileo, please work with the Peach team to ensure the API calls you require are configured.

Enum: "direct" "proxyGalileo"
eventTypes
Array of strings

The list of events for which the caller will receive webhooks. For any proxy webhookType, this field should be left empty and we will automatically send the events associated with that specific proxy.

Items Enum: "autopay.schedule.cancel" "autopay.payment.rescheduled" "autopay.payment.canceled" "case.association.added" "case.association.removed" "case.donotinteract.created" "case.donotinteract.deleted" "case.donotinteract.updated" "case.created" "case.updated" "case.deleted" "communication.send" "indexrate.created" "indexrate.updated" "loan.created" "loan.current" "loan.overdue" "loan.originated" "loan.activated" "loan.acceleration.initiated" "loan.acceleration.processed" "loan.acceleration.reversed" "loan.chargeoff.initiated" "loan.chargeoff.processed" "loan.chargeoff.reversed" "loan.canceled" "loan.draw.created" "loan.frozen" "loan.interest.capitalized" "loan.unfrozen" "loan.draws.frozen" "loan.draws.unfrozen" "loan.statuschanged" "loan.latefee.booked" "loan.modificationfee.booked" "loan.paidoff" "loan.promoprogram.created" "loan.promoprogram.updated" "loan.paymentplan.setup" "loan.duedate.defer" "loan.schedule.defer" "loan.ownerchanged" "loan.rate.created" "loan.rate.updated" "loan.refunded" "loan.reimbursement.initiated" "loan.reimbursement.processed" "loan.period.started" "loan.obligation.statuschanged" "statement.created" "person.created" "person.consent.updated" "person.monitoring.scra.started" "person.monitoring.bankruptcy.started" "contact.created" "contact.deleted" "contact.updated" "paymentinstrument.created" "paymentinstrument.deactivated" "interaction.blocked" "payment.applied" "payment.confirmed" "payment.failed" "payment.initiated" "payment.pending" "payment.reversed" "payment.scheduled" "servicecredit.applied" "loan.draw.purchase.dispute.created" "loan.draw.purchase.dispute.updated" "loan.creditreporting.created" "loan.creditreporting.stopped"
hydrateData
boolean
Default: false

Indicates the amount of information the receiver of webhooks will get. Only applicable if webhookType=direct.

  • false - Peach will provide a minimum amount of data. For example: event identifier, event name, timestamp and identifier(s) of associated object(s) (e.g. loan ID, borrower ID, Autopay ID, etc.)
  • true - in addition to the data provided in the false option, Peach will provide full details of the object(s) associated with the event.
object

The details required for Peach to pass the events via webhook. Required only if webhookType=direct.

object

The details required for Peach to make an API call to the third party identified in the webhookType. Required only if webhookType=proxyXXX.

Responses
200

Success

post/webhooks
Request samples
application/json
{
  • "webhookType": "direct",
  • "eventTypes": [
    ],
  • "hydrateData": false,
  • "webhookDirectDetails": {
    },
  • "webhookProxyDetails": {
    }
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Get webhooks

Securityoauth2 or bearerAuth or apiKeyHeader
Request
query Parameters
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/webhooks
Response samples
application/json
{
  • "count": 0,
  • "data": [
    ]
}

Get webhook subscription by ID

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
webhookSubscriptionId
required
string

The ID of the webhook subscription

Responses
200

Success

get/webhooks/{webhookSubscriptionId}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Update webhook subscription

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
webhookSubscriptionId
required
string

The ID of the webhook subscription

Request Body schema: application/json
hydrateData
boolean
Default: false

Indicates the amount of information the receiver of webhooks will get. Only applicable if webhookType=direct.

  • false - Peach will provide a minimum amount of data. For example: event identifier, event name, timestamp and identifier(s) of associated object(s) (e.g. loan ID, borrower ID, Autopay ID, etc.)
  • true - in addition to the data provided in the false option, Peach will provide full details of the object(s) associated with the event.
object

The details required for Peach to pass the events via webhook. Required only if webhookType=direct.

object

The details required for Peach to make an API call to the third party identified in the webhookType. Required only if webhookType=proxyXXX.

Responses
200

Success

put/webhooks/{webhookSubscriptionId}
Request samples
application/json
{
  • "hydrateData": false,
  • "webhookDirectDetails": {
    },
  • "webhookProxyDetails": {
    }
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Delete webhook subscription

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
webhookSubscriptionId
required
string

The ID of the webhook subscription

Responses
204

Success

delete/webhooks/{webhookSubscriptionId}