List of Webhooks
Generic Structure
| JSON Key | Description |
|---|---|
| {} → payload | Containing shape of whole data fields. |
| {} → payload → details | Contains specific details based on the message type |
| {} → payload → details → messageType | For identifying different events. |
| {} → payload → messageId | Unique identifier for deduplication of webhook messages. |
| {} → payload → timestamp | Time 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 |
| {} → signature | For verifying the payload is from receive and data not tampered in transit. |
Important Payload Identifiers
| Field | Description |
|---|---|
| {} → payload → details → accountReference | Account identifier in external system |
| {} → payload → details → claimRef | Claim identifier in external system |
| {} → payload → details → receiveClaimRef | Internal claim identifier in Receive |
| {} → payload → details → externalDebtorRef | Debtor 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.
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"
}