Skip to main content

List of Webhooks

Generic Structure

JSON KeyDescription
{} → payloadContaining shape of whole data fields.
{} → payload → detailsContains specific details based on the message type
{} → payload → details → messageTypeFor identifying different events.
{} → payload → messageIdUnique identifier for deduplication of webhook messages.
{} → payload → timestampTime stamp of create webhook payload.
{} → payload → user → id(Optional) details user identifier.
{} → payload → user → poolId(Optional) details user pool he belongs to.
{} → payload → user → originator(Optional) Can be backoffice/clientApi/ other systems
{} → signatureFor verifying the payload is from receive and data not tampered in transit.

Important Payload Identifiers

FieldDescription
{} → payload → details → accountReferenceAccount identifier in external system
{} → payload → details → claimRefClaim identifier in external system
{} → payload → details → receiveClaimRefInternal claim identifier in Receive
{} → payload → details → externalDebtorRefDebtor identifier in external system

Account

event.accountAmountTotalFees.updated

The account total amount and fees were updated.

Example:

{
"payload": {
"details": {
"messageType": "event.accountAmountTotalFees.updated.v1",
"accountReference": "ACCOUNT_ID",
"amount": 1000,
"totalFees": 10000,
"totalAmount": 11000
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.accountDebtor.updated

Account Debtor updated.

Example:

{
"payload": {
"details": {
"messageType": "event.accountDebtor.updated.v1",
"debtor": {
"gender": "M",
"title": "General",
"birthday": "1980-06-28",
"lastName": "Bravo",
"firstName": "Johnny",
"middleName": "Jack",
"companyName": "Acme Brick Co.",
"externalDebtorRef": "LARS_EXTERNAL_DEBTOR_REF_009",
"contactInformation": {
"city": "Delbrück",
"state": "Dortmund",
"email": "testEmail@example.com",
"country": "DE",
"landLine": "+46644135100",
"postalCode": "33129",
"mobileNumber": "+46614335311",
"addressLine1": "Boikweg 24",
"addressLine2": "c/o Acme",
"addressLine3": "additional information",
"additionalAddresses": []
},
"type": "natural"
},
"primary": true,
"accountReference": "LARS_ACCOUNT_REFERENCE_009",
"state": "ENABLED"
},
"messageId": "0acf0c30-98fc-47e9-87a8-751d89ae7e34",
"timestamp": "2021-10-25T22:01:48.403Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.accountDebtorUpdate.failed

An error happened while trying to update the debtor.

Example:

{
"payload": {
"details": {
"messageType": "event.accountDebtorUpdate.failed.v1",
"debtor": {
"gender": "M",
"title": "General",
"birthday": "1980-06-28",
"lastName": "Bravo",
"firstName": "Johnny",
"middleName": "Jack",
"companyName": "Acme Brick Co.",
"externalDebtorRef": "LARS_EXTERNAL_DEBTOR_REF_009",
"contactInformation": {
"city": "Delbrück",
"state": "Dortmund",
"email": "testEmail@example.com",
"country": "DE",
"landLine": "+46644135100",
"postalCode": "33129",
"mobileNumber": "+46614335311",
"addressLine1": "Boikweg 24",
"addressLine2": "c/o Acme",
"addressLine3": "additional information",
"additionalAddresses": []
},
"type": "natural"
},
"primary": true,
"accountReference": "LARS_ACCOUNT_REFERENCE_009",
"state": "ENABLED"
},
"messageId": "0acf0c30-98fc-47e9-87a8-751d89ae7e34",
"timestamp": "2021-10-25T22:01:48.403Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.accountInvoiceLedgerEntriesDueDateUpdate.failed

An error occurred while updating account ledger entries due date.

Example:

{
"payload": {
"details": {
"messageType": "event.accountInvoiceLedgerEntriesDueDateUpdate.failed.v1",
"accountReference": "Emmanuel_ACCOUNT_REFERENCE_000003",
"changes": [
{
"invoiceLedgerEntryRef": "Emmanuel_CHARGEBACK_LEDGER_ENTRY_REFERENCE_000003_1",
"dueDate": "2022-04-14"
}
]
},
"messageId": "6fbf4926-cf60-4908-b631-b738b50b2108",
"timestamp": "2022-02-22T09:10:20.756Z"
},
"signature": "SIGNATURE"
}

event.accountLedgerEntries.added

Account new ledger entries were added.

Example:

{
"payload": {
"details": {
"messageType": "event.accountLedgerEntries.added.v1",
"accountReference": "dummy-account-010",
"ledgerEntries": [
{
"ledgerEntryReference": "LEDGER_ENTRY_REFERENCE",
"context": {
"productReference": "PRODUCT_REFERENCE"
},
"invoiceDetails": {
"createdAt": "1970-01-15T07:14:33.224Z",
"meta": {},
"dueDate": "2021-10-28",
"amount": 23522
}
}
]
},
"messageId": "e743d3b7-d7f8-4a4b-bdf4-cbb928a6f54c",
"timestamp": "2021-10-25T21:44:32.887Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.accountLedgerEntriesAdding.failed

An error occurred while updating account ledger entries in account.

Example:

{
"payload": {
"details": {
"messageType": "event.accountLedgerEntriesAdding.failed.v1",
"accountReference": "dummy-account-010",
"ledgerEntries": [
{
"ledgerEntryReference": "LEDGER_ENTRY_REFERENCE",
"context": {
"productReference": "PRODUCT_REFERENCE"
},
"invoiceDetails": {
"createdAt": "1970-01-15T07:14:33.224Z",
"meta": {},
"dueDate": "2021-10-28",
"amount": 23522
}
}
]
},
"messageId": "e743d3b7-d7f8-4a4b-bdf4-cbb928a6f54c",
"timestamp": "2021-10-25T21:44:32.887Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.accountMeta.set

Meta fields in the account updated.

Example:

{
"payload": {
"details": {
"messageType": "event.accountMeta.set.v1",
"accountReference": "dummy-account-010",
"meta": {
"address": "TEST ADDRESS"
}
},
"messageId": "2a74bf68-82c8-4dd5-b4f2-3ac0185f97bc",
"timestamp": "2021-10-25T21:22:40.658Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.accountMetaSet.failed

An error occurred while updating meta fields in the account.

Example:

{
"payload": {
"details": {
"messageType": "event.accountMetaSet.failed.v1",
"accountReference": "dummy-account-010",
"meta": {
"address": "TEST ADDRESS"
}
},
"messageId": "2a74bf68-82c8-4dd5-b4f2-3ac0185f97bc",
"timestamp": "2021-10-25T21:22:40.658Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.accountPayment.allocated

A lump payment sent to allocate_account_payment was distributed across the account's open claims.

allocations is the per-claim breakdown, in the order the claims were credited, and unallocatedRemainder is any overpayment that no open claim absorbed. trackingId, paymentReference and meta are echoed back exactly as supplied on the request, so you can match the allocation to the payment on your side.

trackingId is a correlation handle only — it is not an idempotency key, and sending the same allocation request twice will credit the claims twice.

Example:

{
"payload": {
"details": {
"messageType": "event.accountPayment.allocated.v1",
"accountReference": "dummy-account-010",
"totalAmount": 6000,
"currency": "EUR",
"matchStrategy": "OLDEST_FIRST",
"allocations": [
{ "claimRef": "ABCDEF123", "amount": 4500, "claimResolved": true },
{ "claimRef": "ABCDEF124", "amount": 1500, "claimResolved": false }
],
"unallocatedRemainder": 0,
"providerName": "trustly",
"trackingId": "3889445415",
"paymentReference": "PAYMENT_REFERENCE_2",
"meta": {
"settledAt": "2026-08-13T10:00:00.000Z"
}
},
"messageId": "2a74bf68-82c8-4dd5-b4f2-3ac0185f97bc",
"timestamp": "2021-10-25T21:22:40.658Z"
},
"signature": "SIGNATURE"
}

event.accountPaymentAllocation.failed

An error occurred while distributing a lump payment across the account's open claims.

Any claims listed in allocations were credited before the failure and are not rolled back, so the payment may be partly applied. Compare allocations against totalAmount to see how much of the payment landed.

Example:

{
"payload": {
"details": {
"messageType": "event.accountPaymentAllocation.failed.v1",
"accountReference": "dummy-account-010",
"totalAmount": 6000,
"currency": "EUR",
"matchStrategy": "OLDEST_FIRST",
"allocations": [{ "claimRef": "ABCDEF123", "amount": 4500, "claimResolved": true }],
"providerName": "trustly",
"trackingId": "3889445415",
"paymentReference": "PAYMENT_REFERENCE_2"
},
"messageId": "2a74bf68-82c8-4dd5-b4f2-3ac0185f97bc",
"timestamp": "2021-10-25T21:22:40.658Z"
},
"signature": "SIGNATURE"
}

webhook.accountMeta.changed

Webhook received has change in account meta field.

Example:

{
"payload": {
"details": {
"messageType": "webhook.accountMeta.changed.v1",
"accountReference": "ACC001",
"added": {
"newField1": "value1",
"newField2": 12345
},
"changed": {
"existingField1": "updatedValue",
"existingField2": 54321
},
"deleted": {
"obsoleteField1": true
}
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z"
},
"signature": "SIGNATURE"
}

Claim

event.claim.created

A claim was just created.

Example:

{
"payload": {
"details": {
"messageType": "event.claim.created.v1",
"accountReference": "PDN-922-Oct14-0001",
"claimRef": "PDN-922-claim-Oct14-00010",
"receiveClaimRef": "PDN-922-claim-Oct14-00010",
"amount": 501,
"currency": "EUR",
"dueDate": "2021-10-07"
},
"messageId": "09feeb6f-350a-430a-a040-cd1c558cbc91",
"timestamp": "2021-10-14T15:33:16.848Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.claim.credited

A claim was credited (its outstanding amount decreased). The optional creditType classifies the movement — PAYMENT (default when omitted), DISCOUNT, or ADJUSTMENT.

Example:

{
"payload": {
"details": {
"messageType": "event.claim.credited.v1",
"accountReference": "PDN-922-Oct14-0001",
"claimRef": "PDN-922-claim-Oct14-00010",
"receiveClaimRef": "PDN-922-claim-Oct14-00010",
"amount": 10000,
"currency": "EUR",
"creditType": "DISCOUNT"
},
"messageId": "09feeb6f-350a-430a-a040-cd1c558cbc91",
"timestamp": "2021-10-14T15:33:16.848Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.claim.debited

A claim was debited (its outstanding amount increased). The optional debitType classifies the movement — ADJUSTMENT, CHARGEBACK, or INTEREST.

Example:

{
"payload": {
"details": {
"messageType": "event.claim.debited.v1",
"accountReference": "PDN-922-Oct14-0001",
"claimRef": "PDN-922-claim-Oct14-00010",
"receiveClaimRef": "PDN-922-claim-Oct14-00010",
"amount": 3000,
"currency": "EUR",
"debitType": "CHARGEBACK"
},
"messageId": "09feeb6f-350a-430a-a040-cd1c558cbc91",
"timestamp": "2021-10-14T15:33:16.848Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.claim.resolved

A claim was resolved.

Example:

{
"payload": {
"details": {
"messageType": "event.claim.resolved.v1",
"accountReference": "Koi123",
"receiveClaimRef": "Koi123-7"
},
"messageId": "09feeb6f-350a-430a-a040-cd1c558cbc91",
"timestamp": "2021-10-14T15:33:16.848Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.claimDebtPayment.processing

A payment was done in the landing page, it was accepted by the payment provider and it started being processed.

Example:

{
"payload": {
"details": {
"messageType": "event.claimDebtPayment.processing.v1",
"claimRef": "Trc-bdc0779f-367d-4d46-b7ca-5ed738be8cc8",
"receiveClaimRef": "Trc-bdc0779f-367d-4d46-b7ca-5ed738be8cc8",
"amount": 4436,
"currency": "EUR",
"trackingId": "9215c7b2-3290-592d-8be8-8ac914ca0642",
"providerName": "unnax",
"paymentReference": "a912776c-11e4-4461-9fc4-62d74db971db",
"context": {
"type": "account"
},
"providerWebhookPayload": {
"body": {
"data": {
"account_number": "ES6199992019141413053804",
"amount": 13400,
"bank_order_code": "",
"customer_code": "",
"date": "2021-09-08 09:39:58",
"order_code": "103656789ABC",
"response_id": "061e15eed35047f49f0244d3a669a445",
"result": true,
"service": "payment_transfer_dbt",
"signature": "SIGNATURE",
"status": "payment_completed",
"success": true
},
"date": "2021-09-08 09:39:58",
"environment": "unnax_integration_aws",
"response_id": "061e15eed35047f49f0244d3a669a445",
"service": "payment_transfer_dbt",
"signature": "SIGNATURE",
"trace_identifier": "103656789ABC",
"triggered_event": "event_payment_transfer_lockstep_completed"
},
"pathParameters": {
"providerName": "unnax"
},
"queryString": {}
}
},
"messageId": "6705912b-e68f-43a8-997c-f23de503d31c",
"timestamp": "2021-10-14T13:53:36.527Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.claimDebtPayment.settled

The payment provider notified us the payment has been settled.

Example:

{
"payload": {
"details": {
"messageType": "event.claimDebtPayment.settled.v1",
"claimRef": "Trc-6aac39bd-469f-4ca0-9241-c9a7bc25ebec",
"receiveClaimRef": "Trc-6aac39bd-469f-4ca0-9241-c9a7bc25ebec",
"amount": 12993,
"currency": "EUR",
"trackingId": "4F44CEBB-EB1B-462C-93C4-CC621C11086C",
"providerName": "paylandsenCards",
"paymentReference": "a933cc22-8c76-4ff1-b31c-f4a87dba1d30",
"context": {
"type": "account"
},
"providerWebhookPayload": {
"body": {
"data": {
"account_number": "ES6199992019141413053804",
"amount": 13400,
"bank_order_code": "",
"customer_code": "",
"date": "2021-09-08 09:39:58",
"order_code": "103656789ABC",
"response_id": "061e15eed35047f49f0244d3a669a445",
"result": true,
"service": "payment_transfer_dbt",
"signature": "SIGNATURE",
"status": "payment_completed",
"success": true
},
"date": "2021-09-08 09:39:58",
"environment": "unnax_integration_aws",
"response_id": "061e15eed35047f49f0244d3a669a445",
"service": "payment_transfer_dbt",
"signature": "SIGNATURE",
"trace_identifier": "103656789ABC",
"triggered_event": "event_payment_transfer_lockstep_completed"
},
"pathParameters": {
"providerName": "unnax"
},
"queryString": {}
}
},
"messageId": "130826b8-dc85-4e6b-8af7-d0c2ec8de450",
"timestamp": "2021-10-14T12:54:52.396Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.multiClaimDebtPayment.settled.v1

The payment provider notified us the payment has been settled, with all the Claims affected by that payment.

Example:

{
"payload": {
"details": {
"messageType": "event.multiClaimDebtPayment.settled.v1",
"accountReference": "LARS_2025-08-25_ACCOUNT_REFERENCE_0000001",
"claimPayments": [
{
"claimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_2",
"receiveClaimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_2",
"totalAmount": 32000,
"currency": "EUR",
"paymentReference": "LARS_2025-08-25_API_CLAIM_REF_0000001_2"
},
{
"claimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_3",
"receiveClaimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_3",
"totalAmount": 32000,
"currency": "EUR",
"paymentReference": "LARS_2025-08-25_API_CLAIM_REF_0000001_3"
}
],
"totalPaymentAmount": 64000,
"context": {},
"trackingId": "15493778733",
"providerName": "trustly",
"providerPayload": {}
},
"messageId": "d223c882-67b8-4bd5-97c4-3ef7066012ee",
"timestamp": "2025-09-01T16:31:18.641Z"
},
"signature": "SIGNATURE"
}

event.multiClaimDebtPayment.processing.v1

The payment provider notified us the payment is being processed, with all the Claims affected by that payment. It depends on the provider if they provide that information.

Example:

{
"payload": {
"details": {
"messageType": "event.multiClaimDebtPayment.processing.v1",
"accountReference": "LARS_2025-08-25_ACCOUNT_REFERENCE_0000001",
"claimPayments": [
{
"claimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_2",
"receiveClaimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_2",
"totalAmount": 32000,
"currency": "EUR",
"paymentReference": "LARS_2025-08-25_API_CLAIM_REF_0000001_2"
},
{
"claimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_3",
"receiveClaimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_3",
"totalAmount": 32000,
"currency": "EUR",
"paymentReference": "LARS_2025-08-25_API_CLAIM_REF_0000001_3"
}
],
"totalPaymentAmount": 64000,
"context": {},
"trackingId": "15493778733",
"providerName": "trustly",
"providerPayload": {}
},
"messageId": "d223c882-67b8-4bd5-97c4-3ef7066012ee",
"timestamp": "2025-09-01T16:31:18.641Z"
},
"signature": "SIGNATURE"
}

event.multiClaimDebtPayment.canceled.v1

The payment provider notified us the payment is being canceled, with all the Claims affected by that payment.

Example:

{
"payload": {
"details": {
"messageType": "event.multiClaimDebtPayment.canceled.v1",
"accountReference": "LARS_2025-08-25_ACCOUNT_REFERENCE_0000001",
"claimPayments": [
{
"claimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_2",
"receiveClaimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_2",
"totalAmount": 32000,
"currency": "EUR",
"paymentReference": "LARS_2025-08-25_API_CLAIM_REF_0000001_2"
},
{
"claimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_3",
"receiveClaimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_3",
"totalAmount": 32000,
"currency": "EUR",
"paymentReference": "LARS_2025-08-25_API_CLAIM_REF_0000001_3"
}
],
"totalPaymentAmount": 64000,
"context": {},
"trackingId": "15493778733",
"providerName": "trustly",
"providerPayload": {}
},
"messageId": "d223c882-67b8-4bd5-97c4-3ef7066012ee",
"timestamp": "2025-09-01T16:31:18.641Z"
},
"signature": "SIGNATURE"
}

event.multiClaimDebtPayment.declined

The payment provider notified us the payment is being declined, with all the Claims affected by that payment.

Example:

{
"payload": {
"details": {
"messageType": "event.multiClaimDebtPayment.declined.v1",
"accountReference": "LARS_2025-08-25_ACCOUNT_REFERENCE_0000001",
"claimPayments": [
{
"claimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_2",
"receiveClaimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_2",
"totalAmount": 32000,
"currency": "EUR",
"paymentReference": "LARS_2025-08-25_API_CLAIM_REF_0000001_2"
},
{
"claimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_3",
"receiveClaimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_3",
"totalAmount": 32000,
"currency": "EUR",
"paymentReference": "LARS_2025-08-25_API_CLAIM_REF_0000001_3"
}
],
"totalPaymentAmount": 64000,
"context": {},
"trackingId": "15493778733",
"providerName": "trustly",
"providerPayload": {}
},
"messageId": "d223c882-67b8-4bd5-97c4-3ef7066012ee",
"timestamp": "2025-09-01T16:31:18.641Z"
},
"signature": "SIGNATURE"
}

event.multiClaimDebtPayment.disputed

The payment provider notified us the payment is being disputed, with all the Claims affected by that payment.

Example:

{
"payload": {
"details": {
"messageType": "event.multiClaimDebtPayment.disputed.v1",
"accountReference": "LARS_2025-08-25_ACCOUNT_REFERENCE_0000001",
"claimPayments": [
{
"claimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_2",
"receiveClaimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_2",
"totalAmount": 32000,
"currency": "EUR",
"paymentReference": "LARS_2025-08-25_API_CLAIM_REF_0000001_2"
},
{
"claimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_3",
"receiveClaimRef": "LARS_2025-08-25_API_CLAIM_REF_0000001_3",
"totalAmount": 32000,
"currency": "EUR",
"paymentReference": "LARS_2025-08-25_API_CLAIM_REF_0000001_3"
}
],
"totalPaymentAmount": 64000,
"context": {},
"trackingId": "15493778733",
"providerName": "trustly",
"providerPayload": {}
},
"messageId": "d223c882-67b8-4bd5-97c4-3ef7066012ee",
"timestamp": "2025-09-01T16:31:18.641Z"
},
"signature": "SIGNATURE"
}

event.claimMeta.updated

Claim Metadata was updated.

Example:

{
"payload": {
"details": {
"messageType": "event.claimMeta.updated.v1",
"accountReference": "ref000010ee5",
"receiveClaimRef": "ref000010ee5",
"meta": {
"accountId": "ref000010ee5",
"meta1": "123456",
"accountReference": "ref000010ee5",
"accountNumber": "ref000010ee5",
"aaa": "12345",
"meta2": {
"insider": {
"aa": 11
}
}
}
},
"messageId": "8aabfc0d-8c8b-455b-8a1c-03444b534923",
"timestamp": "2022-02-14T13:07:56.036Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.customClaimTrigger.executed

Custom claim reaction triggered by ClientAPI.

Example:

{
"payload": {
"details": {
"messageType": "event.customClaimTrigger.executed.v1",
"accountReference": "dummy-account-020",
"claimRef": "dummy-claim-090",
"receiveClaimRef": "dummy-claim-090",
"triggerName": "triggerName",
"triggerContext": {
"customContextVariable": "customTriggerValue1"
}
},
"messageId": "a3de3ece-14e3-4f57-848a-7fd9aa9c1cbd",
"timestamp": "2021-10-28T12:51:26.306Z"
},
"signature": "SIGNATURE"
}

event.partnerClaimExternalStatus.changed

Claim status in external system (dca) changed.

Example:

{
"payload": {
"details": {
"messageType": "event.partnerClaimExternalStatus.changed.v1",
"receiveClaimRef": "51a35d12-9145-4c97-8285-08156681e32f",
"externalStatusChangedAt": 1643760000000,
"originalData": {
"statusCode": "1",
"statusText": "pre-legal collections",
"statusTime": "2022-02-02T00:00:00"
}
},
"messageId": "d2b1f2f1-c577-48a7-9202-3e9973240ef9",
"timestamp": "2022-03-31T12:55:13.855Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.claimTotalAmount.updated.v1

Claim amount was updated.

Example:

{
"payload": {
"details": {
"messageType": "event.claimTotalAmount.updated.v1",
"claimReference": "CLAIM_REFERENCE",
"amount": 55000,
"totalFees": 1000,
"totalAmount": 56000
},
"messageId": "0d47b0f8-f426-46f3-b8f3-84527eb0c633",
"timestamp": "2024-11-05T16:55:07.132Z"
},
"signature": "SIGNATURE"
}

Communication

event.debtorCallCommunicationResolution.received

Call communication with debtor ended and reason for delinquency received.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorCallCommunicationResolution.received.v1",
"accountReference": "ACCOUNT_REFERENCE_000121",
"communicationMethod": "Call",
"contactOutcome": "CALL_BACK",
"outcomeDirection": "INBOUND",
"delinquencyReason": "UNEXPECTED_EXPENSES",
"otherOutcome": "dummy_other_come",
"additionalInformation": "dummy_additional_information"
},
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "Backoffice",
"email": "testEmail@example.com"
},
"messageId": "071a0931-ac35-4229-8414-e14d9cf61d93",
"timestamp": "2022-05-20T10:22:21.257Z"
},
"signature": "SIGNATURE"
}

event.debtorEmail.delivered

Debtor received email in inbox.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorEmail.delivered.v1",
"to": "james.bond@indebted.co",
"contentTemplate": "QA test - 1",
"messageURL": "NA",
"messageContextId": "5dc2450f-b1d4-4c9f-b5d7-79713fa9728e",
"requestId": "20211015112344.9b1dadd59396b4f4@en.receive.org",
"accountReference": "PDN-922-Oct14-0001",
"providerName": "Mailgun",
"claimRef": "PDN-922-claim-Oct14-000",
"receiveClaimRef": "PDN-922-claim-Oct14-000"
},
"messageId": "5fd00476-f0b6-4cad-9094-f91de97a4c86",
"timestamp": "2021-10-15T11:23:46.265Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.debtorEmail.opened

Debtor opened email in inbox. Triggered every time they open the email.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorEmail.opened.v1",
"to": "james.bond@indebted.co",
"contentTemplate": "en_US",
"messageContextId": "dfa9a617-696f-40c4-8840-cc221dc54926",
"requestId": "20211015112010.563f3688e0b7c1ac@standardbank.receive-dev.com",
"accountReference": "PDN-922-Oct14-0002",
"providerName": "Mailgun",
"claimRef": "PDN-922-claim-Oct14-00023",
"receiveClaimRef": "PDN-922-claim-Oct14-00023"
},
"messageId": "cda3dfb9-3037-4d55-afe2-5431a0d81551",
"timestamp": "2021-10-15T11:45:42.827Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.debtorEmail.queued

Email is processed and queued with provider.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorEmail.queued.v1",
"to": "EMAIL@test.com",
"contentTemplate": "en_US",
"messageContextId": "564a3997-b371-4f0c-a8b9-d3e44f8629ca",
"requestId": "20211014153336.847e0857d5158e34@standardbank.receive-dev.com",
"accountReference": "PDN-922-Oct14-0001",
"providerName": "Mailgun",
"claimRef": "PDN-922-claim-Oct14-00010",
"receiveClaimRef": "PDN-922-claim-Oct14-00010",
"messageURL": "/Operations/email/Message/421f1aeb-25c7-402e-aa2e-e8ff85d6a48b.eml"
},
"messageId": "ed035dd6-a451-46bc-a254-659d63b820ee",
"timestamp": "2021-10-14T15:33:37.186Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.debtorEmailCommunicationResolution.received

The email resolution is received. Received every time they submit resolution.

Example:

{
"payload": {
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "Backoffice",
"email": "testEmail@example.com"
},
"details": {
"messageType": "event.debtorEmailCommunicationResolution.received.v1",
"accountReference": "ACCOUNT_REFERENCE_000121",
"communicationMethod": "EMAIL",
"contactOutcome": "CALL_BACK",
"outcomeDirection": "INBOUND",
"delinquencyReason": "UNEXPECTED_EXPENSES",
"otherOutcome": "dummy_other_come",
"additionalInformation": "dummy_additional_information"
},
"messageId": "071a0931-ac35-4229-8414-e14d9cf61d93",
"timestamp": "2022-05-20T10:22:21.257Z"
},
"signature": "SIGNATURE"
}

event.debtorEmailDelivery.failed

The email could not be delivered to the recipient.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorEmailDelivery.failed.v1",
"messageContextId": "ee1b26dd-a7f1-4ad6-87c2-d016c109fbd6",
"reason": "generic",
"to": "testEmail@example.com",
"contentTemplate": "en_US",
"requestId": "20211015104600.8390ee55f87b0f61@en.receive.org",
"accountReference": "dummy-acount-010",
"providerName": "Mailgun",
"claimRef": "dummy-claim-400",
"receiveClaimRef": "dummy-claim-400"
},
"messageId": "74476a10-8cab-4cfe-967a-ef3e3856f8e3",
"timestamp": "2021-10-15T10:47:06.844Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.debtorEmailDelivery.interrupted

Delivery of email to debtor was interrupted due to provider errors.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorEmailDelivery.interrupted.v1",
"to": "to@company.com",
"accountReference": "ACC123",
"receiveClaimRef": "RCV456",
"claimRef": "CLM789",
"providerName": "Mailgun",
"requestId": "20231205123456.a6dd9986f85740c4@company.com",
"reason": "Failed to deliver email",
"contentTemplate": "Email content template",
"messageContextId": "ContextId123"
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.debtorEmailProcessing.failed

Email processing failed due to internal issues like template variables.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorEmailProcessing.failed.v1",
"to": "to@company.com",
"accountReference": "ACC456",
"receiveClaimRef": "RCV789",
"claimRef": "CLM012",
"providerName": "SendGrid",
"requestId": "20231205124512.a6dd9986f85740c4@company.com",
"reason": "Failed to process email content",
"contentTemplate": "Email content template",
"messageContextId": "ContextId456"
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.debtorEmailUnsubscribe.requested

Debtor clicked the unsubscribe link in the email.

Example:

{
"payload": {
"user": {
"id": "1ghfhkmnt2bnavd68s05emu7p9",
"poolId": "eu-central-1_7Ua21R1xQ",
"originator": "ClientAPI"
},
"details": {
"messageType": "event.debtorEmailUnsubscribe.requested.v1",
"to": "mr.anderson@email.com",
"from": "Mr Anderson <noreply@test.receive-dev.com>",
"notificationContextId": "bde24513-2068-4711-aedc-7c92835db8ad",
"subject": "Important message to F_N L_N",
"contentTemplate": "en_US",
"requestId": "20250929153942.4dd826dc367973e3@test.receive-dev.com",
"accountReference": "LARS_2025-09-29_ACCOUNT_REFERENCE_000001",
"providerName": "Mailgun",
"claimRef": "LARS_2025-09-29_API_CLAIM_REF_000001_3",
"receiveClaimRef": "LARS_2025-09-29_API_CLAIM_REF_000001_3"
},
"messageId": "77b82bae-36fa-4642-8e55-e4b9bf1bc279",
"timestamp": "2025-10-07T18:44:10.272Z"
},
"signature": "SIGNATURE"
}

event.debtorLetter.generated

Letter to debtor was generated successfully.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorLetter.generated.v1",
"receiveClaimRef": "CLM123",
"contentTemplate": "Debtor Letter Template",
"providerName": "AWS SES",
"requestId": "20231205124512.a6dd9986f85740c4@company.com",
"messageURL": "s3://some-bucket/clientId/letters/letter.eml"
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.debtorLetterProcessing.failed

Letter processing failed due to internal issues like template variables.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorLetterProcessing.failed.v1",
"receiveClaimRef": "CLM456",
"contentTemplate": "Failed Letter Processing Template",
"providerName": "AWS SES",
"requestId": "20231206103015.974a5c96fbff8a98@company.com",
"messageURL": "s3://some-bucket/clientId/letters/letter.eml"
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.debtorMessageCommunicationResolution.received

Claim resolution reason received through message.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorMessageCommunicationResolution.received.v1",
"accountReference": "ACC123",
"receiveClaimRef": "CLM789",
"communicationMethod": "PHONE_CALL",
"contactOutcome": "REFUSAL_TO_PAY",
"outcomeDirection": "OUTBOUND",
"delinquencyReason": "NOT_APPLICABLE",
"additionalInformation": "Additional notes about the resolution."
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.debtorSMS.delivered

SMS has been delivered to debtor.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorSMS.delivered.v1",
"requestId": "b464-6a8ee7ca5235",
"providerName": "mailgun",
"claimRef": "dummy-claim-090",
"receiveClaimRef": "dummy-claim-090"
},
"messageId": "443897f9-af4f-49fe-9012-f99e70b29e98",
"timestamp": "2021-10-28T12:40:53.385Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.debtorSMS.queued

SMS to debtor has been queued with provider.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorSMS.queued.v1",
"to": "+495555555555",
"requestId": "5268ef83d4bb41c9b40f5fd0d1fce8ec",
"providerName": "MessageBird",
"accountReference": "ALLAVIN_ACCOUNT_PROLONG_0074",
"claimRef": "ALLAVIN_ACCOUNT_PROLONG_0074-ALLAVIN_INVOICE_LEDGER_ENTRY_0074_3",
"receiveClaimRef": "ALLAVIN_ACCOUNT_PROLONG_0074-ALLAVIN_INVOICE_LEDGER_ENTRY_0074_3",
"messageURL": "/Operations/sms/Message/aa113cb0-0eb5-45a2-84f3-18e5c7e43dcb.eml"
},
"messageId": "43da4073-86e6-4df0-b41e-3010bc268641",
"timestamp": "2021-10-15T10:42:05.716Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.debtorSMSCommunicationResolution.received

SMS communication with debtor has reason for delinquency received.

Example:

{
"payload": {
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "Backoffice",
"email": "testEmail@example.com"
},
"details": {
"messageType": "event.debtorSMSCommunicationResolution.received.v1",
"accountReference": "ACCOUNT_REFERENCE_000121",
"communicationMethod": "SMS",
"contactOutcome": "CALL_BACK",
"outcomeDirection": "INBOUND",
"delinquencyReason": "UNEXPECTED_EXPENSES",
"otherOutcome": "dummy_other_come",
"additionalInformation": "dummy_additional_information"
},
"messageId": "071a0931-ac35-4229-8414-e14d9cf61d93",
"timestamp": "2022-05-20T10:22:21.257Z"
},
"signature": "SIGNATURE"
}

event.debtorSMSDelivery.failed

SMS was not delivered to debtor.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorSMSDelivery.failed.v1",
"requestId": "b464-6a8ee7ca5235",
"providerName": "mailgun",
"claimRef": "dummy-claim-090",
"receiveClaimRef": "dummy-claim-090"
},
"messageId": "34711fec-9f0f-4b8a-b230-685be4f91a43",
"timestamp": "2021-10-28T12:37:48.140Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.debtorSMSDelivery.temporaryFailed

SMS was not delivered to debtor due to temporary failure with provider.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorSMSDelivery.temporaryFailed.v1",
"to": "+47733111111",
"accountReference": "ACC123",
"receiveClaimRef": "CLM789",
"claimRef": "CR123456",
"providerName": "Twilio",
"requestId": "REQ987654",
"reason": "Temporary network issue",
"contentTemplate": "Template for the SMS message.",
"messageContextId": "CTX456789"
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.debtorSMSProcessing.failed

SMS processing failed due to internal issues like template variables.

Example:

{
"payload": {
"details": {
"messageType": "event.debtorSMSProcessing.failed.v1",
"to": "+47733111111",
"accountReference": "ACC123",
"receiveClaimRef": "CLM789",
"claimRef": "CR123456",
"providerName": "Twilio",
"requestId": "REQ987654",
"reason": "Processing error",
"contentTemplate": "Template for the SMS message.",
"messageContextId": "CTX456789"
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.inboundCall.answered

When debtor answered the inbound call.

Example:

{
"payload": {
"details": {
"messageType": "event.inboundCall.answered.v1",
"contactNumber": "+47733111111",
"context": {},
"providerName": "Twilio",
"requestId": "REQ123456789"
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.inboundCall.finished

When debtor finished the inbound call.

Example:

{
"payload": {
"details": {
"messageType": "event.inboundCall.finished.v1",
"contactNumber": "+47733111111",
"context": {},
"providerName": "Twilio",
"requestId": "REQ123456789"
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.incomingDebtorEmail.received

An email was received from the debtor.

messageURL is a path relative to your client prefix. Pass it unchanged to get_message with direction=inbound to retrieve the message in .eml format.

claimRef and receeveClaimRef are null when the email is not a reply and could not be matched to a claim on arrival. Use parentRequestId to relate a reply to the message it answers.

Example:

{
"payload": {
"details": {
"messageType": "event.incomingDebtorEmail.received.v1",
"providerName": "Mailgun",
"messageURL": "/Operations/email/a1b2c3d4-5e6f-4071-8293-a4b5c6d7e8f9.eml",
"requestId": "a1b2c3d4-5e6f-4071-8293-a4b5c6d7e8f9@mail.example.com",
"from": "debtor@example.com",
"subject": "Re: Your outstanding balance",
"claimRef": "ABCDEF123",
"receeveClaimRef": "ABCDEF123-2026-08-24",
"accountReference": "ABCDEF123",
"parentRequestId": "20260901070057.e3091a69c04804bf@mail.example.com"
},
"messageId": "51a35d12-9145-4c97-8285-08156681e47e",
"timestamp": "2026-09-01T07:03:20.308Z"
},
"signature": "SIGNATURE"
}

event.incomingDebtorMessage.received

An SMS or WhatsApp message was received from the debtor.

messageURL is a path relative to your client prefix. Pass it unchanged to get_message with direction=inbound to retrieve the message in .eml format.

Example:

{
"payload": {
"details": {
"messageType": "event.incomingDebtorMessage.received.v1",
"providerName": "Twilio",
"messageURL": "/Operations/message/SM0f3a1b2c3d4e5f60718293a4b5c6d7e8.eml",
"requestId": "SM0f3a1b2c3d4e5f60718293a4b5c6d7e8",
"from": "+447700900123",
"to": "+447700900456",
"communicationChannel": "WHATSAPP",
"claimRef": "ABCDEF123",
"receeveClaimRef": "ABCDEF123-2026-08-24",
"accountReference": "ABCDEF123",
"parentRequestId": null
},
"messageId": "51a35d12-9145-4c97-8285-08156681e47e",
"timestamp": "2026-09-01T10:26:42.847Z"
},
"signature": "SIGNATURE"
}

event.incomingDebtorMessage.dismissed

An agent dismissed an inbound communication.

It needs no reply and has dropped out of our queue. If you mirror the queue on your side, this is the event that lets you stop showing work that is already done.

Despite the incomingDebtorMessage name this covers inbound email as well as SMS and WhatsApp — they share the same communication queue.

requestId is how you tie this event back to the event.incomingDebtorMessage.received or event.incomingDebtorEmail.received that introduced the communication. accountReference, claimRef and receeveClaimRef are frequently null here: the action does not itself attribute the communication to an account. Correlate on requestId rather than relying on them.

The same requestId can appear more than once, on different days. Treat these as a stream of changes and keep the latest, rather than expecting one final answer.

Example:

{
"payload": {
"details": {
"messageType": "event.incomingDebtorMessage.dismissed.v1",
"requestId": "SM0f3a1b2c3d4e5f60718293a4b5c6d7e8",
"accountReference": null,
"claimRef": null,
"receeveClaimRef": null
},
"messageId": "51a35d12-9145-4c97-8285-08156681e47e",
"timestamp": "2026-09-01T10:26:42.847Z"
},
"signature": "SIGNATURE"
}

event.incomingDebtorMessage.linked

An inbound communication was attributed to an account, or re-attributed to a different one.

Inbound email arrives without a claim unless it is a reply, and an agent links it afterwards. That link can be changed again later, so this event can fire more than once for the same communication.

Despite the incomingDebtorMessage name this covers inbound email as well as SMS and WhatsApp — they share the same communication queue.

requestId is how you tie this event back to the event.incomingDebtorMessage.received or event.incomingDebtorEmail.received that introduced the communication. accountReference is always present on this event — the link is what it reports. claimRef and receeveClaimRef can still be null when the account carries no external claim reference.

The same requestId can appear more than once, on different days. Treat these as a stream of changes and keep the latest, rather than expecting one final answer.

Example:

{
"payload": {
"details": {
"messageType": "event.incomingDebtorMessage.linked.v1",
"requestId": "SM0f3a1b2c3d4e5f60718293a4b5c6d7e8",
"accountReference": "ABCDEF123",
"claimRef": "ABCDEF123",
"receeveClaimRef": "ABCDEF123-2026-08-24"
},
"messageId": "51a35d12-9145-4c97-8285-08156681e47e",
"timestamp": "2026-09-01T10:26:42.847Z"
},
"signature": "SIGNATURE"
}

event.incomingDebtorMessage.read

An agent opened an inbound communication.

Use it to keep your own read state in step with ours.

Despite the incomingDebtorMessage name this covers inbound email as well as SMS and WhatsApp — they share the same communication queue.

requestId is how you tie this event back to the event.incomingDebtorMessage.received or event.incomingDebtorEmail.received that introduced the communication. accountReference, claimRef and receeveClaimRef are frequently null here: the action does not itself attribute the communication to an account. Correlate on requestId rather than relying on them.

The same requestId can appear more than once, on different days. Treat these as a stream of changes and keep the latest, rather than expecting one final answer.

Example:

{
"payload": {
"details": {
"messageType": "event.incomingDebtorMessage.read.v1",
"requestId": "SM0f3a1b2c3d4e5f60718293a4b5c6d7e8",
"accountReference": null,
"claimRef": null,
"receeveClaimRef": null
},
"messageId": "51a35d12-9145-4c97-8285-08156681e47e",
"timestamp": "2026-09-01T10:26:42.847Z"
},
"signature": "SIGNATURE"
}

event.incomingDebtorMessage.unread

An agent put a previously-read inbound communication back in the queue.

The counterpart to event.incomingDebtorMessage.read. Subscribe to both, or your mirrored read state can only ever move one way.

Despite the incomingDebtorMessage name this covers inbound email as well as SMS and WhatsApp — they share the same communication queue.

requestId is how you tie this event back to the event.incomingDebtorMessage.received or event.incomingDebtorEmail.received that introduced the communication. accountReference, claimRef and receeveClaimRef are frequently null here: the action does not itself attribute the communication to an account. Correlate on requestId rather than relying on them.

The same requestId can appear more than once, on different days. Treat these as a stream of changes and keep the latest, rather than expecting one final answer.

Example:

{
"payload": {
"details": {
"messageType": "event.incomingDebtorMessage.unread.v1",
"requestId": "SM0f3a1b2c3d4e5f60718293a4b5c6d7e8",
"accountReference": null,
"claimRef": null,
"receeveClaimRef": null
},
"messageId": "51a35d12-9145-4c97-8285-08156681e47e",
"timestamp": "2026-09-01T10:26:42.847Z"
},
"signature": "SIGNATURE"
}

event.outboundCall.answered

When debtor answered the outbound call.

Example:

{
"payload": {
"details": {
"messageType": "event.outboundCall.answered.v1",
"contactNumber": "+47733111111",
"context": {},
"providerName": "Twilio",
"requestId": "REQ123456789"
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.outboundCall.finished

When debtor finished the outbound call.

Example:

{
"payload": {
"details": {
"messageType": "event.outboundCall.finished.v1",
"contactNumber": "+47733111111",
"context": {},
"providerName": "Twilio",
"requestId": "REQ123456789"
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

Finance

Promise to Pay

event.promiseToPay.created

A promise to pay was created.

Example:

{
"payload": {
"details": {
"messageType": "event.promiseToPay.created.v1",
"claimRef": "dummy-claim-404",
"receiveClaimRef": "dummy-claim-404",
"id": "60a3c602-1507-4bf0-b2c1-b79cad610e81",
"amount": 1200,
"dueDate": "2020-10-28",
"currency": "EUR",
"startDate": "2021-10-18"
},
"messageId": "066d74ae-e113-4a40-9de1-6c886e602309",
"timestamp": "2021-10-18T10:55:12.023Z"
},
"signature": "SIGNATURE"
}

event.promiseToPay.expired

The promise to pay was not paid before its due date.

Example:

{
"payload": {
"details": {
"messageType": "event.promiseToPay.expired.v1",
"claimRef": "dummy-claim-404",
"receiveClaimRef": "dummy-claim-404",
"id": "60a3c602-1507-4bf0-b2c1-b79cad610e81"
},
"messageId": "03eb9b9f-56a0-4f77-808e-9c81851bd33a",
"timestamp": "2021-10-18T10:55:18.507Z"
},
"signature": "SIGNATURE"
}

event.promiseToPay.invalidated

The promise to pay no longer needs to be paid (e.g. claim was fully paid).

Example:

{
"payload": {
"details": {
"messageType": "event.promiseToPay.invalidated.v1",
"accountReference": "LARS_ACCOUNT_REFERENCE_006",
"claimRef": "dummy-claim-402",
"receiveClaimRef": "dummy-claim-402",
"id": "a64747db-5d5c-4efb-b487-8452e6bfcb21"
},
"messageId": "a7ee17e5-2ada-4bcb-85d8-9a61f9792d0a",
"timestamp": "2021-10-18T11:33:39.456Z"
},
"signature": "SIGNATURE"
}

event.promiseToPay.resolved

The promise to pay was successfully paid.

Example:

{
"payload": {
"details": {
"messageType": "event.promiseToPay.resolved.v1",
"claimRef": "dummy-claim-422",
"receiveClaimRef": "dummy-claim-422",
"id": "60a3c602-1507-4bf0-b2c1-b79cad610e81",
"paymentReference": "abcde-adde"
},
"messageId": "81b4c5b7-af2d-4832-afe5-c26b9c05e3f4",
"timestamp": "2021-10-25T15:36:57.609Z"
},
"signature": "SIGNATURE"
}

Multi-claim Promise to Pay

A single promise to pay can span several claims on one account ("pay X total across claims [A, B, C] by date Y"). Its type sets how it is judged kept: ALL_PROMISES requires every covered claim to receive its share, while ALL_AMOUNT only requires the promised total to be paid across the covered claims, wherever the money lands.

event.promisesToPay.created

A multi-claim promise to pay was created.

Example:

{
"payload": {
"details": {
"messageType": "event.promisesToPay.created.v1",
"status": "CREATED",
"id": "770bf2ed-525b-45cd-bf9d-80f33391e0ca",
"accountReference": "LARS_ACCOUNT_REFERENCE_006",
"type": "ALL_AMOUNT",
"currency": "EUR",
"totalAmount": 15000,
"dueDate": "2026-06-30",
"claims": [
{ "externalClaimRef": "dummy-claim-404", "amount": 10000 },
{ "externalClaimRef": "dummy-claim-405", "amount": 5000 }
]
},
"messageId": "066d74ae-e113-4a40-9de1-6c886e602309",
"timestamp": "2026-05-01T10:55:12.023Z"
},
"signature": "SIGNATURE"
}

event.promisesToPay.resolved

The promise was kept: the promised total was paid across the covered claims.

Example:

{
"payload": {
"details": {
"messageType": "event.promisesToPay.resolved.v1",
"status": "RESOLVED",
"id": "770bf2ed-525b-45cd-bf9d-80f33391e0ca",
"accountReference": "LARS_ACCOUNT_REFERENCE_006",
"type": "ALL_AMOUNT",
"currency": "EUR",
"totalAmount": 15000,
"paidAmount": 15000,
"dueDate": "2026-06-30",
"claims": [
{ "externalClaimRef": "dummy-claim-404", "amount": 10000 },
{ "externalClaimRef": "dummy-claim-405", "amount": 5000 }
]
},
"messageId": "81b4c5b7-af2d-4832-afe5-c26b9c05e3f4",
"timestamp": "2026-06-15T15:36:57.609Z"
},
"signature": "SIGNATURE"
}

event.promisesToPay.expired

The promise was broken: its due date passed without the fulfilment rule being met.

Example:

{
"payload": {
"details": {
"messageType": "event.promisesToPay.expired.v1",
"status": "EXPIRED",
"id": "770bf2ed-525b-45cd-bf9d-80f33391e0ca",
"accountReference": "LARS_ACCOUNT_REFERENCE_006",
"type": "ALL_AMOUNT",
"currency": "EUR",
"totalAmount": 15000,
"paidAmount": 8000,
"dueDate": "2026-06-30",
"claims": [
{ "externalClaimRef": "dummy-claim-404", "amount": 10000 },
{ "externalClaimRef": "dummy-claim-405", "amount": 5000 }
]
},
"messageId": "03eb9b9f-56a0-4f77-808e-9c81851bd33a",
"timestamp": "2026-07-01T10:55:18.507Z"
},
"signature": "SIGNATURE"
}

Instalment Plan

The following instalment plan events all share the same payload structure. An example payload is shown for event.instalmentPlan.created; other events use the same shape.

event.instalmentPlan.created

The Instalment Plan was successfully created in the platform.

Example:

{
"payload": {
"details": {
"messageType": "event.instalmentPlan.created.v2",
"accountReference": "LARS_2025-08-11_ACCOUNT_REFERENCE_0000002",
"instalmentPlan": {
"id": "ddb6becc-ef26-4f90-8c01-4c625bab8d5a",
"status": "ACTIVE",
"currency": "EUR",
"createdAt": "2025-08-11T18:26:26.414Z",
"scope": {
"debtorReferences": ["LARS_2025-08-11_EXTERNAL_DEBTOR_REF_0000002_2"],
"externalClaimReferences": [
"LARS_2025-08-11_API_CLAIM_REF_0000002_1",
"LARS_2025-08-11_API_CLAIM_REF_0000002_2"
],
"externalClaimAmounts": [
{ "totalFees": 2000, "amount": 30000, "fees": [] },
{ "totalFees": 2000, "amount": 30000, "fees": [] }
],
"externalProductReferences": [
"LARS_2025-08-11_PRODUCT_REFERENCE_0000002_2"
],
"definition": {
"id": "91111111-1111-1111-1111-111111111119",
"version": "1",
"description": {
"en_US": "If favorite number equals best number (11), then 10 Instalments; otherwise 5 Instalments."
}
}
},
"totalAmount": 64000,
"paidAmount": 0,
"instalments": [
{
"id": "4d7f7154-b503-4cc7-9050-195ca5423c82",
"amount": 6400,
"dueDate": "2025-09-01",
"startDate": "2025-08-11",
"status": "CREATED",
"instalmentPlanId": "ddb6becc-ef26-4f90-8c01-4c625bab8d5a",
"createdAt": "2025-08-11T18:26:26.414Z",
"updatedAt": "2025-08-11T18:26:26.414Z"
}
]
}
},
"messageId": "c9bfd50c-1279-4e2b-80b0-6c9c4b0bb1be",
"timestamp": "2025-08-11T18:26:31.334Z"
},
"signature": "SIGNATURE"
}

event.instalmentPlan.cancelled

The Instalment Plan was cancelled by an agent or system process.

event.instalmentPlan.deleted

The instalment plan was deleted from the system. Triggered when the associated Account is deleted or the Instalment Plan Claim is deleted.

event.instalmentPlan.disabled

Indicates that the instalment plan processing has been suspended or stopped. Emitted when the Instalment Plan is cancelled, invalidated, resolved, or programmatically disabled.

event.instalmentPlan.enabled

Indicates that the instalment plan is active and ready for processing. Currently only emitted when the Instalment Plan is created.

event.instalmentPlan.invalidated

This event indicates that the agreed amount for the Instalment Plan was not fully covered, and the plan was not resolved through either full payment of all instalments or a programmatic discount.

event.instalmentPlan.resolved

The Instalment Plan completed successfully, either through full payment of the agreed amount or via a programmatic discount.

event.instalmentPlan.updated

The Instalment Plan was updated (payment received, chargeback processed, updates to individual instalments, etc.).


Settlement

A settlement applies a discount (forgiveness) against a debt. It is either attached to an instrument — a Promise to Pay (PROMISE_TO_PAY) or an Instalment Plan (INSTALMENT_PLAN) — or applied directly (DIRECT). The computedDiscount on each claim is the discount resolved to a cents value.

event.settlement.materialised

A settlement was set up against an instrument (or applied directly); no forgiveness has been applied yet. The settlement is ACTIVE.

Example:

{
"payload": {
"details": {
"messageType": "event.settlement.materialised.v1",
"settlementId": "s-0001",
"definitionId": "def-0001",
"accountReference": "PDN-922-Oct14-0001",
"currency": "EUR",
"instrumentType": "PROMISE_TO_PAY",
"instrumentRef": "p2p-0001",
"claims": [
{
"externalClaimRef": "PDN-922-claim-Oct14-00010",
"computedDiscount": 2500
}
],
"status": "ACTIVE"
},
"messageId": "09feeb6f-350a-430a-a040-cd1c558cbc91",
"timestamp": "2021-10-14T15:33:16.848Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.settlement.fulfilled

The instrument resolved (or a DIRECT settlement was applied) and the discount was forgiven. The settlement is FULFILLED.

Example:

{
"payload": {
"details": {
"messageType": "event.settlement.fulfilled.v1",
"settlementId": "s-0001",
"definitionId": "def-0001",
"accountReference": "PDN-922-Oct14-0001",
"currency": "EUR",
"instrumentType": "INSTALMENT_PLAN",
"instrumentRef": "ip-0001",
"claims": [
{
"externalClaimRef": "PDN-922-claim-Oct14-00010",
"computedDiscount": 2500
}
],
"status": "FULFILLED"
},
"messageId": "09feeb6f-350a-430a-a040-cd1c558cbc91",
"timestamp": "2021-10-14T15:33:16.848Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.settlement.breached

The instrument expired or was invalidated under-paid; nothing was waived. The settlement is BREACHED.

Example:

{
"payload": {
"details": {
"messageType": "event.settlement.breached.v1",
"settlementId": "s-0001",
"definitionId": "def-0001",
"accountReference": "PDN-922-Oct14-0001",
"currency": "EUR",
"instrumentType": "PROMISE_TO_PAY",
"instrumentRef": "p2p-0001",
"claims": [
{
"externalClaimRef": "PDN-922-claim-Oct14-00010",
"computedDiscount": 2500
}
],
"status": "BREACHED"
},
"messageId": "09feeb6f-350a-430a-a040-cd1c558cbc91",
"timestamp": "2021-10-14T15:33:16.848Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.settlement.withdrawn

The settlement was withdrawn before reaching a terminal state and its instrument cancelled. The settlement is WITHDRAWN.

Example:

{
"payload": {
"details": {
"messageType": "event.settlement.withdrawn.v1",
"settlementId": "s-0001",
"definitionId": "def-0001",
"accountReference": "PDN-922-Oct14-0001",
"currency": "EUR",
"instrumentType": "PROMISE_TO_PAY",
"instrumentRef": "p2p-0001",
"claims": [
{
"externalClaimRef": "PDN-922-claim-Oct14-00010",
"computedDiscount": 2500
}
],
"status": "WITHDRAWN"
},
"messageId": "09feeb6f-350a-430a-a040-cd1c558cbc91",
"timestamp": "2021-10-14T15:33:16.848Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

Debtor Landing Page

event.landingPageFullContent.generated

LP for debtor payment was successfully generated internally without errors.

Example:

{
"payload": {
"details": {
"messageType": "event.landingPageClaimContent.generated.v1",
"accountReference": "ACC123",
"receiveClaimRef": "RCV456",
"claimRef": "CLM789"
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.landingPageGetVerificationFields.failed

The landing page verification failed due to invalid input by debtor. Only applies if the landing page has verification fields enabled.

Example:

{
"payload": {
"details": {
"messageType": "event.landingPageVerification.failed.v1",
"receiveClaimRef": "RCV12345",
"claimRef": "ClientClaim001",
"messageContextId": "ctx_987654321",
"accountReference": "ACC001"
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.landingPageInstalment.confirmed

The debtor confirmed the instalment plan request in the landing page. Triggers Instalment Plan Created.

Example:

{
"payload": {
"details": {
"messageType": "event.landingPageInstalment.confirmed.v1",
"messageContextId": "REQ1234",
"claimRef": "dummy-claim-443",
"receiveClaimRef": "dummy-claim-443"
},
"messageId": "431a65c4-34ab-4691-8d87-511c6a8ffe7c",
"timestamp": "2021-10-26T14:14:59.575Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.landingPageInstalment.selected

The debtor selected one of the instalments in the list.

Example:

{
"payload": {
"details": {
"messageType": "event.landingPageInstalment.selected.v1",
"messageContextId": "REQ1234",
"claimRef": "dummy-claim-443",
"receiveClaimRef": "dummy-claim-443"
},
"messageId": "a8c1af8a-e10f-45f7-b3aa-3e50e73d4edd",
"timestamp": "2021-10-26T13:54:55.081Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.landingPageLanguage.changed

The debtor changed the language of the landing page.

Example:

{
"payload": {
"details": {
"messageType": "event.landingPageLanguage.changed.v1",
"messageContextId": "7e51d97e-59d0-42f0-bbca-6e45d9133e0c",
"claimRef": "dummy-claim-409",
"receiveClaimRef": "dummy-claim-409"
},
"messageId": "0e6477a5-6d23-4c2b-b469-4096ebfc73af",
"timestamp": "2021-10-19T10:27:34.193Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.landingPagePayLater.canceled

The debtor closed the landing page after selecting a pay later option (instalments, promise to pay).

Example:

{
"payload": {
"details": {
"messageType": "event.landingPagePayLater.canceled.v1",
"messageContextId": "REQ1234",
"claimRef": "dummy-claim-443",
"receiveClaimRef": "dummy-claim-443"
},
"messageId": "8282ebdd-55b5-4277-bc06-5220283d4415",
"timestamp": "2021-10-26T13:37:37.669Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.landingPagePayLater.selected

The debtor selected the pay later alternative.

Example:

{
"payload": {
"details": {
"messageType": "event.landingPagePayLater.selected.v1",
"messageContextId": "REQ1234",
"claimRef": "dummy-claim-443",
"receiveClaimRef": "dummy-claim-443"
},
"messageId": "72beadb0-84c7-41a2-8e80-24e94f8aa91f",
"timestamp": "2021-10-26T13:34:58.589Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.landingPagePayment.failed

The payment failed (full or partial). This does not trigger a payment processing.

Example:

{
"payload": {
"details": {
"messageType": "event.landingPagePayment.failed.v1",
"messageContextId": "f5267e34-8652-44c8-860a-a2503d3fdd70",
"claimRef": "dummy-claim-421",
"receiveClaimRef": "dummy-claim-421",
"providerName": "paylandsenBizum"
},
"messageId": "671aa87b-1856-461e-b2f4-6c19d78d7c28",
"timestamp": "2021-10-21T12:11:44.570Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.landingPagePayment.interrupted

The debtor closed the page (or the modal) in the middle of the payment process.

Example:

{
"payload": {
"details": {
"messageType": "event.landingPagePayment.interrupted.v1",
"messageContextId": "REQ1234",
"claimRef": "dummy-claim-443",
"receiveClaimRef": "dummy-claim-443"
},
"messageId": "510fd09b-024e-45f7-8487-091b274189de",
"timestamp": "2021-10-26T13:48:46.558Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.landingPagePayment.succeeded

The payment process finished successfully in the landing page. Triggers claim payment processing.

Example:

{
"payload": {
"details": {
"messageType": "event.landingPagePayment.succeeded.v1",
"messageContextId": "8579f7ff-3112-4e3a-891d-cfdb52ad4303",
"providerName": "paylandsenCards",
"claimRef": "Trc-d8be41aa-1370-467c-9e34-ab29209a9492",
"receiveClaimRef": "Trc-d8be41aa-1370-467c-9e34-ab29209a9492"
},
"messageId": "6ead1f1a-a00d-4897-ae27-64ff51491661",
"timestamp": "2021-10-15T14:31:40.221Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.landingPagePaymentInit.failed

The debtor selected a payment provider and the payment process failed to initialize.

Example:

{
"payload": {
"details": {
"messageType": "event.landingPagePaymentInit.failed.v1",
"claimRef": "LR_ACCOUNT_REFERENCE_013-LR_INVOICE_LEDGER_ENTRY_REFERENCE_013_1",
"receiveClaimRef": "LR_ACCOUNT_REFERENCE_013-LR_INVOICE_LEDGER_ENTRY_REFERENCE_013_1",
"providerName": "ferratumCheckoutCreditCard"
},
"messageId": "972eeeb9-68e1-493e-82a8-eaa41fcae43b",
"timestamp": "2021-10-23T15:56:10.829Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.landingPagePaymentInit.succeeded

The debtor selected a payment provider and the payment process was initialized correctly.

Example:

{
"payload": {
"details": {
"messageType": "event.landingPagePaymentInit.succeeded.v1",
"messageContextId": "8579f7ff-3112-4e3a-891d-cfdb52ad4303",
"providerName": "paylandsenCards",
"claimRef": "Trc-d8be41aa-1370-467c-9e34-ab29209a9492",
"receiveClaimRef": "Trc-d8be41aa-1370-467c-9e34-ab29209a9492"
},
"messageId": "296c09f9-07ec-4368-9409-ea3cc15f8296",
"timestamp": "2021-10-15T14:31:49.840Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.landingPageVerification.succeeded

The landing page verification succeeded. Only applies if the landing page has verification fields enabled.

Example:

{
"payload": {
"details": {
"messageType": "event.landingPageVerification.succeeded.v1",
"receiveClaimRef": "RCV12345",
"claimRef": "ClientClaim001",
"messageContextId": "ctx_987654321",
"accountReference": "ACC001"
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

Backoffice Diary

event.note.deleted

Agent/User removed a note on claim through Backoffice.

Example:

{
"payload": {
"details": {
"messageType": "event.note.deleted.v1",
"accountReference": "ACC456",
"receiveClaimRef": "RCV987",
"id": "7b8c9d0e-1f2g-3h4i-5j6k-7l8m9n0o1p2",
"text": "This is a deleted note text.",
"metadata": {
"field": "value",
"data": {
"otherField": "otherValue"
}
}
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.note.created

Agent/User added a note on claim through Backoffice.

Example:

{
"payload": {
"details": {
"messageType": "event.note.created.v1",
"accountReference": "ACC123",
"receiveClaimRef": "RCV789",
"id": "1a2b3c4d-5e6f-7g8h-9i0j-k1l2m3n4o5p6",
"text": "This is a sample note text.",
"metadata": {
"field": "value",
"data": {
"otherField": "otherValue"
}
}
},
"messageId": "9b72ff0b-bfd4-4be1-8e22-d21731af064e",
"timestamp": "2020-02-12T10:59:00.272Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

Strategy

event.strategy.assigned

The initial (default) strategy was assigned to the claim.

Example:

{
"payload": {
"details": {
"messageType": "event.strategy.assigned.v1",
"accountReference": "ACCOUNT_REFERENCE0",
"claimRef": "CLAIM_0",
"receiveClaimRef": "CLAIM_0"
},
"messageId": "51132c1a-735e-41d6-a0be-55ac097b9106",
"timestamp": "2021-10-15T11:56:38.243Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.strategy.finished

The claim ran out of strategy steps to execute.

Example:

{
"payload": {
"details": {
"messageType": "event.strategy.finished.v1",
"accountReference": "dummy-acount-010",
"claimRef": "dummy-claim-401",
"receiveClaimRef": "dummy-claim-401"
},
"messageId": "dc43b0e9-87fc-47ec-aea4-b84f788efde1",
"timestamp": "2021-10-15T12:32:36.581Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.strategy.paused

The strategy was paused, can be resumed.

Example:

{
"payload": {
"details": {
"messageType": "event.strategy.paused.v1",
"claimRef": "LARS_ACCOUNT_REFERENCE_006-LARS_INVOICE_LEDGER_ENTRY_REFERENCE_006_1",
"receiveClaimRef": "LARS_ACCOUNT_REFERENCE_006-LARS_INVOICE_LEDGER_ENTRY_REFERENCE_006_1"
},
"messageId": "5e1b4594-3a50-498b-a69f-d1ab688e84ce",
"timestamp": "2021-10-18T11:08:47.925Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.strategy.resumed

The strategy was resumed after being paused.

Example:

{
"payload": {
"details": {
"messageType": "event.strategy.resumed.v1",
"claimRef": "LARS_ACCOUNT_REFERENCE_006-LARS_INVOICE_LEDGER_ENTRY_REFERENCE_006_1",
"receiveClaimRef": "LARS_ACCOUNT_REFERENCE_006-LARS_INVOICE_LEDGER_ENTRY_REFERENCE_006_1"
},
"messageId": "b51076aa-d7fa-4972-8684-876000576ce4",
"timestamp": "2021-10-18T11:17:35.392Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

event.strategy.stopped

The strategy was stopped, cannot be resumed. Also triggered when a claim is paid or the strategy finishes.

Example:

{
"payload": {
"details": {
"messageType": "event.strategy.stopped.v1",
"accountReference": "dummy-acount-010",
"claimRef": "dummy-claim-401",
"receiveClaimRef": "dummy-claim-401"
},
"messageId": "649f017a-0fba-449e-ab3a-a85b50c5e3d1",
"timestamp": "2021-10-15T12:32:37.069Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

Compliance

Compliance webhooks tell you what a compliance check found about a message and what Receive did about it. They are only sent for clients with compliance enabled, and only for the surfaces and channels it is configured on.

event.messageCompliance.evaluated

A message was checked against the compliance policy. One event per evaluation, whatever the result.

outcome is what the check found and decision is what Receive did about it — they are separate on purpose. UNAVAILABLE means no verdict was possible, which is deliberately not the same as CLEAN: a message nobody could check is not a message that passed, and it may still have been sent, depending on the failure policy configured for you. When the outcome is UNAVAILABLE, a reason says why.

mode says when the check ran. FIREWALL evaluated the message before it was sent and could stop it, so decision: "BLOCKED" means the message did not go out. AUDIT evaluated a message that had already been sent, so the decision records the call rather than an action taken — an AUDIT evaluation never blocks anything.

claimRef and receeveClaimRef are absent together when the evaluated message was not sent against a claim.

note

receeveClaimRef is spelled correctly here, with the double e. That is the field name the payload actually contains, for this webhook and for every other one on this page. Elsewhere on this page you will see it written receiveClaimRef — those spellings are wrong and are being corrected. Match what your payloads contain, not what the surrounding examples say.

Example:

{
"payload": {
"details": {
"messageType": "event.messageCompliance.evaluated.v1",
"accountReference": "PDN-922-Oct14-0001",
"claimRef": "PDN-922-claim-Oct14-00010",
"receeveClaimRef": "PDN-922-claim-Oct14-00010",
"evaluationId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"mode": "FIREWALL",
"surface": "strategy",
"channel": "email",
"outcome": "VIOLATIONS",
"decision": "BLOCKED",
"violations": [
{
"ruleId": "dddddddd-dddd-dddd-dddd-dddddddddddd",
"ruleVersion": 3,
"explanation": "The message states a balance that does not match the amount on the account."
}
],
"evaluatedAt": "2021-10-14T15:33:16.000Z"
},
"messageId": "09feeb6f-350a-430a-a040-cd1c558cbc91",
"timestamp": "2021-10-14T15:33:16.848Z",
"user": {
"id": "USER_ID",
"poolId": "POOL_ID",
"originator": "ClientAPI"
}
},
"signature": "SIGNATURE"
}

A message that passed carries an empty violations array:

{
"payload": {
"details": {
"messageType": "event.messageCompliance.evaluated.v1",
"accountReference": "PDN-922-Oct14-0001",
"claimRef": "PDN-922-claim-Oct14-00010",
"receeveClaimRef": "PDN-922-claim-Oct14-00010",
"evaluationId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"mode": "FIREWALL",
"surface": "strategy",
"channel": "sms",
"outcome": "CLEAN",
"decision": "ALLOWED",
"violations": [],
"evaluatedAt": "2021-10-14T15:33:16.000Z"
},
"messageId": "09feeb6f-350a-430a-a040-cd1c558cbc91",
"timestamp": "2021-10-14T15:33:16.848Z"
},
"signature": "SIGNATURE"
}

A message that could not be checked carries a reason, and the decision that followed from it:

{
"payload": {
"details": {
"messageType": "event.messageCompliance.evaluated.v1",
"accountReference": "PDN-922-Oct14-0001",
"claimRef": "PDN-922-claim-Oct14-00010",
"receeveClaimRef": "PDN-922-claim-Oct14-00010",
"evaluationId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"mode": "FIREWALL",
"surface": "strategy",
"channel": "email",
"outcome": "UNAVAILABLE",
"decision": "ALLOWED",
"reason": "TIMEOUT",
"violations": [],
"evaluatedAt": "2021-10-14T15:33:16.000Z"
},
"messageId": "09feeb6f-350a-430a-a040-cd1c558cbc91",
"timestamp": "2021-10-14T15:33:16.848Z"
},
"signature": "SIGNATURE"
}

event.messageCompliance.classified

An inbound message from a consumer was classified for vulnerability signals.

Signals are not violations. Nothing was blocked and nothing needs to be — they describe the consumer's situation, and it is up to you what to do with them.

The classification is anchored to the consumer, so there is no claim reference, and accountReference is absent when the inbound message could not be attributed to an account.

Example:

{
"payload": {
"details": {
"messageType": "event.messageCompliance.classified.v1",
"accountReference": "PDN-922-Oct14-0001",
"classificationId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
"channel": "sms",
"consumerId": "PDN-922-debtor-Oct14-0001",
"jurisdiction": "US:NY",
"signals": [
{
"ruleId": "dddddddd-dddd-dddd-dddd-dddddddddddd",
"ruleVersion": 1,
"explanation": "The consumer describes a change in circumstances that may indicate hardship."
}
],
"classifiedAt": "2021-10-14T15:33:16.000Z"
},
"messageId": "09feeb6f-350a-430a-a040-cd1c558cbc91",
"timestamp": "2021-10-14T15:33:16.848Z"
},
"signature": "SIGNATURE"
}

event.consumerConsent.changed

A consumer consented to being contacted on a channel, or withdrew that consent.

Consent is recorded against the consumer rather than against a claim, so this is the one webhook that carries neither an account nor a claim reference. consumerId is the debtor reference, and resolving it to accounts on your side is up to you — one consumer may hold several.

Example:

{
"payload": {
"details": {
"messageType": "event.consumerConsent.changed.v1",
"consentEventId": "cccccccc-cccc-cccc-cccc-cccccccccccc",
"action": "OPTED_OUT",
"channel": "sms",
"consumerId": "PDN-922-debtor-Oct14-0001",
"jurisdiction": "US:NY",
"occurredAt": "2021-10-14T15:33:16.000Z"
},
"messageId": "09feeb6f-350a-430a-a040-cd1c558cbc91",
"timestamp": "2021-10-14T15:33:16.848Z"
},
"signature": "SIGNATURE"
}