Event Dictionary
This dictionary lists all events published by the Eclipse platform. Events are used by the Event-Driven Notifications framework and can be subscribed to via eventPublishers tenant config or streamed to external systems via eventWebhookUrl.
Quick Reference
| Event Type | Service | Trigger |
|---|---|---|
wallet.wallet.create | wallet-service | A new wallet is created |
wallet.wallet.update | wallet-service | A wallet's status or details change |
wallet.transfer.create | wallet-service | A wallet-to-wallet transfer completes |
wallet.history.create | wallet-service | A wallet history record is written |
wallet.history.fraud | wallet-service | A fraud reference is set on a history record |
wallet.transaction.failure | wallet-service | A transaction fails before committing |
wallet.reservation.create | wallet-service | A funds reservation is created |
wallet.reservation.delete | wallet-service | A funds reservation is released |
wallet.charge.create | wallet-service | A fee charge is applied to a wallet |
wallet.mapping.create | wallet-service | A wallet mapping (e.g. QR or card link) is created |
wallet.mapping.delete | wallet-service | A wallet mapping is removed |
wallet.transfer.fraud | wallet-service | A transfer is flagged as potential fraud |
wallet.dormant.cancel | wallet-service | A dormant wallet flag is cancelled |
wallet.walletType.create | wallet-service | A wallet type is created |
wallet.walletType.update | wallet-service | A wallet type configuration changes |
payment.payment.create | payment-service | A payment is initiated |
payment.payment.complete | payment-service | A payment reaches a terminal state |
payment.withdrawal.create | payment-service | A withdrawal is initiated |
payment.withdrawal.complete | payment-service | A withdrawal reaches a terminal state |
user.user.create | user-service | A user is registered |
user.user.update | user-service | A user's details change |
user.user.delete | user-service | A user is deleted |
user.user.ratify | user-service | A user is KYC-ratified |
user.organisation.create | user-service | An organisation is created |
user.organisation.update | user-service | An organisation's details change |
user.organisation.delete | user-service | An organisation is deleted |
user.organisation.ratify | user-service | An organisation is KYC-ratified |
user.ratify.create | user-service | A ratification record is created |
user.ratify.compliance.* | user-service | A compliance check result is recorded |
user.identity.create | user-service | A user identity (login credential) is added |
user.identity.delete | user-service | A user identity is removed |
user.identities.reset | user-service | All identities for a user are reset |
user.auth.success | user-service | A user successfully authenticates |
user.auth.failure | user-service | A user authentication attempt fails |
user.address.create | user-service | An address is added to a user or organisation |
user.address.update | user-service | An address is updated |
user.address.delete | user-service | An address is removed |
user.contact.create | user-service | A contact record is created |
user.contact.update | user-service | A contact record is updated |
user.contact.delete | user-service | A contact record is removed |
user.document.create | user-service | A KYC document is uploaded |
user.document.update | user-service | A KYC document is updated |
user.document.delete | user-service | A KYC document is removed |
user.role.create | user-service | A role is assigned to a user |
user.role.delete | user-service | A role is removed from a user |
user.position.create | user-service | A user is given a position in an organisation |
user.position.delete | user-service | A user's position in an organisation is removed |
user.tenant.create | user-service | A tenant is created |
user.tenant.update | user-service | A tenant is updated |
user.manual.ratify.create | user-service | A manual ratification is triggered |
user.replycomply.response | user-service | A RelyComply KYC response is received |
tenant.config.create | eclipse-java | A tenant config key is created |
tenant.config.update | eclipse-java | A tenant config key is updated |
tenant.config.delete | eclipse-java | A tenant config key is deleted |
postilion.card.create | eclipse-java | A Postilion card is created |
postilion.card.update | eclipse-java | A Postilion card is updated |
postilion.card.register | eclipse-java | A Postilion card is registered |
postilion.card.standard.limits.update | eclipse-java | Standard card limits are updated |
postilion.card.advanced.limits.update | eclipse-java | Advanced card limits are updated |
postilion.stip.transaction.successful | eclipse-java | A STIP card transaction succeeds |
postilion.stip.transaction.declined | eclipse-java | A STIP card transaction is declined |
postilion.* | eclipse-java | Dynamic ISO 8583 card transaction events |
reward.create | reward-service | A reward is created |
reward.complete | reward-service | A reward is completed |
fraud.trigger | fraud-service | A fraud rule is matched |
card.cardonfile.decrypt | card-service | A card-on-file record is decrypted |
aws.liveness.session | eclipse-java | An AWS Face Liveness session is initiated |
email.send.success | messaging-library | An email is sent successfully |
email.send.failure | messaging-library | An email fails to send |
sms.send.success | messaging-library | An SMS is sent successfully |
sms.send.failure | messaging-library | An SMS fails to send |
telegram.send | messaging-library | A Telegram message is sent |
telegram.receive | messaging-library | A Telegram message is received |
telegram.start | messaging-library | A Telegram conversation is started |
eclipse-java/conductor
aws.liveness.session
This event is published when an AWS Face Liveness session is initiated.
Event Type: aws.liveness.session
JSON Event Layout:
{
"user": "string",
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
user: The ID of the customer initiating the liveness check.tenantId: The ID of the tenant the user belongs to.associatedEntity:user: The ID of the customer initiating the liveness check.
tenant.config.update
This event is published when a tenant's configuration is updated.
Event Type: tenant.config.update
JSON Event Layout:
{
"property": {
"att": "string",
"val": "string"
},
"tenantId": "string",
"associatedEntity": {
"tenantId": "string"
}
}Field Descriptions:
property: The configuration property that was updated.att: The name of the property.val: The new value of the property.
tenantId: The ID of the tenant whose configuration was updated.associatedEntity:tenantId: The ID of the tenant whose configuration was updated.
tenant.config.create
This event is published when a new configuration is created for a tenant.
Event Type: tenant.config.create
JSON Event Layout:
{
"property": {
"att": "string",
"val": "string"
},
"tenantId": "string",
"associatedEntity": {
"tenantId": "string"
}
}Field Descriptions:
property: The configuration property that was created.att: The name of the property.val: The value of the property.
tenantId: The ID of the tenant for whom the configuration was created.associatedEntity:tenantId: The ID of the tenant for whom the configuration was created.
tenant.config.delete
This event is published when a tenant's configuration is deleted.
Event Type: tenant.config.delete
JSON Event Layout:
{
"property": "string",
"tenantId": "string",
"associatedEntity": {
"tenantId": "string"
}
}Field Descriptions:
property: The name of the configuration property that was deleted.tenantId: The ID of the tenant whose configuration was deleted.associatedEntity:tenantId: The ID of the tenant whose configuration was deleted.
public.tenant.config.create
This event is published when a public tenant configuration is created.
Event Type: public.tenant.config.create
JSON Event Layout:
{
"property": {
"att": "string",
"val": "string"
},
"tenantId": "string",
"associatedEntity": {
"tenantId": "string"
}
}Field Descriptions:
property: The configuration property that was created.att: The name of the property.val: The value of the property.
tenantId: The ID of the tenant for whom the configuration was created.associatedEntity:tenantId: The ID of the tenant for whom the configuration was created.
user.identities.reset
This event is published when a user's identities are reset.
Event Type: user.identities.reset
JSON Event Layout:
{
"tenantId": "string",
"associatedEntity": {
"userId": "string"
}
}Field Descriptions:
tenantId: The ID of the tenant the user belongs to.associatedEntity:userId: The ID of the user whose identities were reset.
messaging-library
email.send.success
This event is published when an email is sent successfully.
Event Type: email.send.success
JSON Event Layout:
{
"to": [
"string"
],
"from": "string",
"subject": "string",
"body": "string",
"associatedEntity": {
"emailTo": "string"
}
}Field Descriptions:
to: A list of recipient email addresses.from: The sender's email address.subject: The subject of the email.body: The body of the email (obfuscated).associatedEntity:emailTo: The recipient's email address.
email.send.failure
This event is published when an email fails to send.
Event Type: email.send.failure
JSON Event Layout:
{
"to": [
"string"
],
"from": "string",
"subject": "string",
"body": "string",
"error": "string",
"associatedEntity": {
"emailTo": "string"
}
}Field Descriptions:
to: A list of recipient email addresses.from: The sender's email address.subject: The subject of the email.body: The body of the email (obfuscated).error: The error message.associatedEntity:emailTo: The recipient's email address.
sms.send.success
This event is published when an SMS is sent successfully.
Event Type: sms.send.success
JSON Event Layout:
{
"phone": "string",
"message": "string",
"senderId": "string",
"tenantId": "string",
"associatedEntity": {
"msisdn": "string"
}
}Field Descriptions:
phone: The recipient's phone number.message: The message that was sent (potentially obfuscated).senderId: The ID of the sender.tenantId: The ID of the tenant.associatedEntity:msisdn: The recipient's phone number.
sms.send.failure
This event is published when an SMS fails to send.
Event Type: sms.send.failure
JSON Event Layout:
{
"phone": "string",
"message": "string",
"error": "string",
"senderId": "string",
"tenantId": "string",
"associatedEntity": {
"msisdn": "string"
}
}Field Descriptions:
phone: The recipient's phone number.message: The message that was sent (potentially obfuscated).error: The error message.senderId: The ID of the sender.tenantId: The ID of the tenant.associatedEntity:msisdn: The recipient's phone number.
whatsapp.start
This event is published when a WhatsApp conversation is started.
Event Type: whatsapp.start
JSON Event Layout:
{
"phone": "string"
}Field Descriptions:
phone: The user's phone number.
whatsapp.receive
This event is published when a WhatsApp message is received.
Event Type: whatsapp.receive
JSON Event Layout:
{
"phone": "string"
}Field Descriptions:
phone: The user's phone number.
whatsapp.send
This event is published when a WhatsApp message is sent.
Event Type: whatsapp.send
JSON Event Layout:
{
"phone": "string"
}Field Descriptions:
phone: The user's phone number.
telegram.send
This event is published when a Telegram message is sent.
Event Type: telegram.send
JSON Event Layout:
{
"phone": "string"
}Field Descriptions:
phone: The user's phone number.
telegram.start
This event is published when a Telegram conversation is started.
Event Type: telegram.start
JSON Event Layout:
{
"phone": "string"
}Field Descriptions:
phone: The user's phone number.
telegram.receive
This event is published when a Telegram message is received.
Event Type: telegram.receive
JSON Event Layout:
{
"phone": "string"
}Field Descriptions:
phone: The user's phone number.
property-service
property.property.create
This event is published when a property is created.
Event Type: property.property.create
JSON Event Layout:
{
"property": {
"name": "string",
"value": "string"
},
"associatedEntity": {
"property": "string"
}
}Field Descriptions:
property: The property that was created.name: The name of the property.value: The value of the property.
associatedEntity:property: The name of the property.
property.property.update
This event is published when a property is updated.
Event Type: property.property.update
JSON Event Layout:
{
"property": {
"name": "string",
"value": "string"
},
"associatedEntity": {
"property": "string"
}
}Field Descriptions:
property: The property that was updated.name: The name of the property.value: The new value of the property.
associatedEntity:property: The name of the property.
property.property.delete
This event is published when a property is deleted.
Event Type: property.property.delete
JSON Event Layout:
{
"property": {
"name": "string"
},
"associatedEntity": {
"property": "string"
}
}Field Descriptions:
property: The property that was deleted.name: The name of the property.
associatedEntity:property: The name of the property.
accounting-service
sme.event.*
This event is published when a sale event occurs.
Event Type: sme.event.*
Possible Event Types:
sme.event.EDITsme.event.QUOTE_REQUESTEDsme.event.CANCELsme.event.QUOTE_ACCEPTEDsme.event.PAYMENTsme.event.FULFILsme.event.DEALLOCATE_PAYMENTsme.event.DELETE_PAYMENTsme.event.ALLOCATE_PAYMENT
JSON Event Layout:
{
"sale": "string",
"tenantId": "string",
"associatedEntity": {
"accountId": "string"
}
}Field Descriptions:
sale: The ID of the sale.tenantId: The ID of the tenant.associatedEntity:accountId: The ID of the account.
telco-library
ussd.start
This event is published when a USSD session is started.
Event Type: ussd.start
JSON Event Layout:
{
"phone": "string"
}Field Descriptions:
phone: The user's phone number.
ussd.receive
This event is published when a USSD message is received.
Event Type: ussd.receive
JSON Event Layout:
{
"phone": "string"
}Field Descriptions:
phone: The user's phone number.
eclipse-java/services/postilion
postilion.card.register
This event is published when a Postilion card is registered.
Event Type: postilion.card.register
JSON Event Layout:
{
"postilionCard": {
"pan": "string",
"expiry": "string",
"accountNumber": "string",
"sequenceNumber": "string",
"deviceType": "string",
"cardRules": {
"ecommerceTransactionsEnabled": "boolean",
"internationalTransactionsEnabled": "boolean"
},
"tenantId": "string",
"userId": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
postilionCard: The Postilion card that was registered.pan: The card's Primary Account Number.expiry: The card's expiration date.accountNumber: The account number associated with the card.sequenceNumber: The card's sequence number.deviceType: The type of device.cardRules:ecommerceTransactionsEnabled: Whether or not e-commerce transactions are enabled.internationalTransactionsEnabled: Whether or not international transactions are enabled.
tenantId: The ID of the tenant.userId: The ID of the user.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
postilion.card.create
This event is published when a Postilion card is created.
Event Type: postilion.card.create
JSON Event Layout:
{
"card": {
"cardId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"postilionCard": "string"
}
}Field Descriptions:
card: The card that was created.cardId: The ID of the card.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:postilionCard: The ID of the Postilion card.
postilion.card.update
This event is published when a Postilion card is updated.
Event Type: postilion.card.update
JSON Event Layout:
{
"card": {
"cardId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"postilionCard": "string"
}
}Field Descriptions:
card: The card that was updated.cardId: The ID of the card.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:postilionCard: The ID of the Postilion card.
postilion.card.standard.limits.update
This event is published when the standard limits for a Postilion card are updated.
Event Type: postilion.card.standard.limits.update
JSON Event Layout:
{
"limits": {
"cardId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"postilionCard": "string"
}
}Field Descriptions:
limits: The standard limits that were updated.cardId: The ID of the card.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:postilionCard: The ID of the Postilion card.
postilion.card.advanced.limits.update
This event is published when the advanced limits for a Postilion card are updated.
Event Type: postilion.card.advanced.limits.update
JSON Event Layout:
{
"limits": {
"cardId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"postilionCard": "string"
}
}Field Descriptions:
limits: The advanced limits that were updated.cardId: The ID of the card.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:postilionCard: The ID of the Postilion card.
postilion.stip.transaction.declined
This event is published when a STIP (Stand-In Processing) transaction is declined.
Event Type: postilion.stip.transaction.declined
JSON Event Layout:
{
"cardTransaction": "string",
"tenantId": "string",
"associatedEntity": {
"card": "string"
}
}Field Descriptions:
cardTransaction: The details of the card transaction (sanitised JSON string).tenantId: The ID of the tenant.associatedEntity:card: The ID of the card.
postilion.settlement.request
This event is published when a settlement request is made.
Event Type: postilion.settlement.request
JSON Event Layout:
{
"cardTransaction": "string",
"tenantId": "string",
"associatedEntity": {
"postilionCard": "string"
}
}Field Descriptions:
cardTransaction: The details of the card transaction (sanitised JSON string).tenantId: The ID of the tenant.associatedEntity:postilionCard: The ID of the Postilion card.
postilion.stip.transaction.successful
This event is published when a STIP (Stand-In Processing) transaction is successful.
Event Type: postilion.stip.transaction.successful
JSON Event Layout:
{
"cardTransaction": "string",
"tenantId": "string",
"associatedEntity": {
"card": "string"
}
}Field Descriptions:
cardTransaction: The details of the card transaction (sanitised JSON string).tenantId: The ID of the tenant.associatedEntity:card: The ID of the card.
postilion.*
This is a dynamic event that is published for various Postilion transactions.
The event name is constructed as postilion.{MTI}-{message-type-name}-{direction}.{processing-scope}.{transaction-type}.{channel}.{region}.
| Component | Definition | Sample |
|---|---|---|
| MTI | ISO8583 Message Type Indicator | 0110 |
| message-type-name | Human-readable description of the MTI (e.g. "authorization-response") | authorization |
| direction | Indicates message direction. Values = request/response | request |
| processing-scope | Specifies whether the transaction is on-us or off-us. This is determined based on the configuration of the Postilion source node that received the request. Values = onus/offus | offus |
| transaction-type | Abbreviated transaction category code. pur = purchase | asi |
| channel | Indicates the channel through which the transaction originated. Derived from ISO Field 123 (Terminal Type) Values = ecom/pos/atm | ecom |
| region | Indicates whether the transaction is domestic or international. Derived from ISO Field 43 (Card Acceptor Name/Location) Values = domestic/international | domestic |
Event Type: postilion.*
JSON Event Layout:
{
"cardTransaction": "string",
"transactionSummary": "string",
"tenantId": "string",
"associatedEntity": {
"walletId": "string"
}
}Field Descriptions:
cardTransaction: The details of the card transaction (sanitised JSON string).transactionSummary: A summary of the transaction.tenantId: The ID of the tenant.associatedEntity:walletId: The ID of the wallet.
postilion.*.isomessage
This is a dynamic event that is published for various Postilion transactions, containing the raw ISO8583 message. The event name is constructed as postilion.<mti>.<transaction-type>.isomessage, where <mti> is the Message Type Indicator (e.g., 0100-authorization-request) and <transaction-type> is the type of transaction.
Event Type: postilion.*.isomessage
JSON Event Layout:
{
"isoMessage": "string",
"tenantId": "string",
"associatedEntity": {
"walletId": "string"
}
}Field Descriptions:
isoMessage: The raw ISO8583 message (sanitised JSON string).tenantId: The ID of the tenant.associatedEntity:walletId: The ID of the wallet.
card-service
card.cardonfile.decrypt
This event is published when a card on file is decrypted.
Event Type: card.cardonfile.decrypt
JSON Event Layout:
{
"cardOnFile": {
"pan": "string",
"cardholderName": "string",
"expiry": "string",
"cvv": "string",
"accountType": "string",
"dob": "string",
"userId": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
cardOnFile: The decrypted card on file data (desensitised).pan: The card's Primary Account Number.cardholderName: The name of the cardholder.expiry: The card's expiration date.cvv: The card's CVV.accountType: The account type.dob: The cardholder's date of birth.userId: The ID of the user.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
fraud-service
fraud.trigger
This event is published when a fraud rule is triggered.
Event Type: fraud.trigger
JSON Event Layout:
{
"fraudResult": {
"allow": "boolean",
"overallDescription": "string",
"lockMinutes": "number",
"matchedRules": [
{
"action": "string",
"notificationTemplateName": "string",
"description": "string"
}
]
},
"event": {
"key": "value"
},
"tenantId": "string",
"associatedEntity": {
"walletId": "string"
}
}Field Descriptions:
fraudResult: The result of the fraud check.allow: Whether or not the transaction is allowed.overallDescription: A description of the overall fraud check result.lockMinutes: The number of minutes to lock the account.matchedRules: A list of the fraud rules that were matched.action: The action to take.notificationTemplateName: The name of the notification template to use.description: A description of the rule.
event: The event data that triggered the fraud check.tenantId: The ID of the tenant.associatedEntity:walletId: The ID of the wallet.
user-service
sbsa.user.identity.inconclusive
This event is published when a user's identity is inconclusive after a RelyComply assessment.
Event Type: sbsa.user.identity.inconclusive
JSON Event Layout:
{
"RelyComplyAssessmentResponse": {
"key": "value"
},
"Message": "string",
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
RelyComplyAssessmentResponse: The assessment response from RelyComply.Message: A message describing the event.tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
sbsa.user.additional.docs.required
This event is published when additional documentation is required from a user after a RelyComply assessment.
Event Type: sbsa.user.additional.docs.required
JSON Event Layout:
{
"RelyComplyAssessmentResponse": {
"key": "value"
},
"Message": "string",
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
RelyComplyAssessmentResponse: The assessment response from RelyComply.Message: A message describing the event.tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
sbsa.user.assessment.unacceptablerisk
This event is published when a user's assessment is determined to be an unacceptable risk after a RelyComply assessment.
Event Type: sbsa.user.assessment.unacceptablerisk
JSON Event Layout:
{
"RelyComplyAssessmentResponse": {
"key": "value"
},
"Message": "string",
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
RelyComplyAssessmentResponse: The assessment response from RelyComply.Message: A message describing the event.tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.replycomply.response
This event is published when a response is received from RelyComply.
Event Type: user.replycomply.response
JSON Event Layout:
{
"relyComplyResponse": "string",
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
relyComplyResponse: The response from RelyComply.tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.user.delete
This event is published when a user is deleted.
Event Type: user.user.delete
JSON Event Layout:
{
"user": {
"userId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
user: The user that was deleted.userId: The ID of the user.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.organisation.update
This event is published when an organisation is updated.
Event Type: user.organisation.update
JSON Event Layout:
{
"organisation": {
"organisationId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"organisation": "string"
}
}Field Descriptions:
organisation: The organisation that was updated.organisationId: The ID of the organisation.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:organisation: The ID of the organisation.
user.organisation.delete
This event is published when an organisation is deleted.
Event Type: user.organisation.delete
JSON Event Layout:
{
"organisation": {
"organisationId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"organisation": "string"
}
}Field Descriptions:
organisation: The organisation that was deleted.organisationId: The ID of the organisation.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:organisation: The ID of the organisation.
user.identity.create
This event is published when a user identity is created.
Event Type: user.identity.create
JSON Event Layout:
{
"userIdentity": {
"userId": "string",
"identity": "string",
"identityType": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
userIdentity: The user identity that was created.userId: The ID of the user.identity: The identity string.identityType: The type of identity.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.identity.delete
This event is published when a user identity is deleted.
Event Type: user.identity.delete
JSON Event Layout:
{
"userIdentity": {
"userId": "string",
"identity": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
userIdentity: The user identity that was deleted.userId: The ID of the user.identity: The identity string.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.auth.success
This event is published when a user successfully authenticates.
Event Type: user.auth.success
JSON Event Layout:
{
"authCredentials": {
"identity": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
authCredentials: The authentication credentials.identity: The identity string.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.auth.failure
This event is published when a user authentication fails.
Event Type: user.auth.failure
JSON Event Layout:
{
"authCredentials": {
"identity": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
authCredentials: The authentication credentials.identity: The identity string.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.address.create
This event is published when an address is created.
Event Type: user.address.create
JSON Event Layout:
{
"address": {
"addressId": "string",
"userId": "string",
"organisationId": "string"
},
"tenantId": "string",
"associatedEntity": {
"organisation": "string",
"user": "string"
}
}Field Descriptions:
address: The address that was created.addressId: The ID of the address.userId: The ID of the user.organisationId: The ID of the organisation.
tenantId: The ID of the tenant.associatedEntity:organisation: The ID of the organisation.user: The ID of the user.
user.address.update
This event is published when an address is updated.
Event Type: user.address.update
JSON Event Layout:
{
"address": {
"addressId": "string",
"userId": "string",
"organisationId": "string"
},
"tenantId": "string",
"associatedEntity": {
"organisation": "string",
"user": "string"
}
}Field Descriptions:
address: The address that was updated.addressId: The ID of the address.userId: The ID of the user.organisationId: The ID of the organisation.
tenantId: The ID of the tenant.associatedEntity:organisation: The ID of the organisation.user: The ID of the user.
user.address.delete
This event is published when an address is deleted.
Event Type: user.address.delete
JSON Event Layout:
{
"address": {
"addressId": "string",
"userId": "string",
"organisationId": "string"
},
"tenantId": "string",
"associatedEntity": {
"organisation": "string",
"user": "string"
}
}Field Descriptions:
address: The address that was deleted.addressId: The ID of the address.userId: The ID of the user.organisationId: The ID of the organisation.
tenantId: The ID of the tenant.associatedEntity:organisation: The ID of the organisation.user: The ID of the user.
user.contact.create
This event is published when a user contact is created.
Event Type: user.contact.create
JSON Event Layout:
{
"userContact": {
"userContactId": "string",
"userId": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
userContact: The user contact that was created.userContactId: The ID of the user contact.userId: The ID of the user.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.contact.update
This event is published when a user contact is updated.
Event Type: user.contact.update
JSON Event Layout:
{
"userContact": {
"userContactId": "string",
"userId": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
userContact: The user contact that was updated.userContactId: The ID of the user contact.userId: The ID of the user.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.contact.delete
This event is published when a user contact is deleted.
Event Type: user.contact.delete
JSON Event Layout:
{
"userContact": {
"userContactId": "string",
"userId": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
userContact: The user contact that was deleted.userContactId: The ID of the user contact.userId: The ID of the user.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.position.create
This event is published when a user position is created.
Event Type: user.position.create
JSON Event Layout:
{
"userPosition": {
"userId": "string",
"organisationId": "string",
"position": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
userPosition: The user position that was created.userId: The ID of the user.organisationId: The ID of the organisation.position: The position.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.position.delete
This event is published when a user position is deleted.
Event Type: user.position.delete
JSON Event Layout:
{
"userPosition": {
"userId": "string",
"organisationId": "string",
"position": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
userPosition: The user position that was deleted.userId: The ID of the user.organisationId: The ID of the organisation.position: The position.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.role.create
This event is published when a user role is created.
Event Type: user.role.create
JSON Event Layout:
{
"userRole": {
"userId": "string",
"role": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
userRole: The user role that was created.userId: The ID of the user.role: The role.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.role.delete
This event is published when a user role is deleted.
Event Type: user.role.delete
JSON Event Layout:
{
"userRole": {
"userId": "string",
"role": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
userRole: The user role that was deleted.userId: The ID of the user.role: The role.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.user.create
This event is published when a user is created.
Event Type: user.user.create
JSON Event Layout:
{
"user": {
"userId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
user: The user that was created.userId: The ID of the user.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.user.update
This event is published when a user is updated.
Event Type: user.user.update
JSON Event Layout:
{
"user": {
"userId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
user: The user that was updated.userId: The ID of the user.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.organisation.create
This event is published when an organisation is created.
Event Type: user.organisation.create
JSON Event Layout:
{
"organisation": {
"organisationId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"organisation": "string"
}
}Field Descriptions:
organisation: The organisation that was created.organisationId: The ID of the organisation.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:organisation: The ID of the organisation.
user.organisation.ratify
This event is published when an organisation is ratified.
Event Type: user.organisation.ratify
JSON Event Layout:
{
"organisation": "string",
"tenantId": "string",
"associatedEntity": {
"organisation": "string"
}
}Field Descriptions:
organisation: The ID of the organisation.tenantId: The ID of the tenant.associatedEntity:organisation: The ID of the organisation.
user.user.ratify
This event is published when a user is ratified.
Event Type: user.user.ratify
JSON Event Layout:
{
"user": "string",
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
user: The ID of the user.tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.ratify.create
This event is published when a ratification is created.
Event Type: user.ratify.create
JSON Event Layout:
{
"ratifyResult": {
"userId": "string",
"organisationId": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
ratifyResult: The result of the ratification.userId: The ID of the user.organisationId: The ID of the organisation.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.document.delete
This event is published when a document is deleted.
Event Type: user.document.delete
JSON Event Layout:
{
"document": {
"documentId": "string",
"userId": "string",
"organisationId": "string"
},
"tenantId": "string",
"associatedEntity": {
"document": "string"
}
}Field Descriptions:
document: The document that was deleted.documentId: The ID of the document.userId: The ID of the user.organisationId: The ID of the organisation.
tenantId: The ID of the tenant.associatedEntity:document: The ID of the document.
user.document.update
This event is published when a document is updated.
Event Type: user.document.update
JSON Event Layout:
{
"document": {
"documentId": "string",
"userId": "string",
"organisationId": "string"
},
"tenantId": "string",
"associatedEntity": {
"document": "string"
}
}Field Descriptions:
document: The document that was updated.documentId: The ID of the document.userId: The ID of the user.organisationId: The ID of the organisation.
tenantId: The ID of the tenant.associatedEntity:document: The ID of the document.
user.document.create
This event is published when a document is created.
Event Type: user.document.create
JSON Event Layout:
{
"document": {
"documentId": "string",
"userId": "string",
"organisationId": "string"
},
"tenantId": "string",
"associatedEntity": {
"document": "string"
}
}Field Descriptions:
document: The document that was created.documentId: The ID of the document.userId: The ID of the user.organisationId: The ID of the organisation.
tenantId: The ID of the tenant.associatedEntity:document: The ID of the document.
user.tenant.create
This event is published when a tenant is created.
Event Type: user.tenant.create
JSON Event Layout:
{
"tenant": {
"organisationId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"tenant": "string"
}
}Field Descriptions:
tenant: The tenant that was created.organisationId: The ID of the organisation.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:tenant: The ID of the tenant.
user.tenant.update
This event is published when a tenant is updated.
Event Type: user.tenant.update
JSON Event Layout:
{
"tenant": {
"organisationId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"tenant": "string"
}
}Field Descriptions:
tenant: The tenant that was updated.organisationId: The ID of the organisation.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:tenant: The ID of the tenant.
user.manual.ratify.create
This event is published when a manual KYC ratification is explicitly triggered for a user (as opposed to the automated ratification flow).
Event Type: user.manual.ratify.create
JSON Event Layout:
{
"user": {
"userId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
user: The user for whom manual ratification was triggered.userId: The ID of the user.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
user.ratify.compliance.*
This event is published when a user is ratified against a compliance agency.
Event Type: user.ratify.compliance.*
Possible Event Types:
user.ratify.compliance.ofacuser.ratify.compliance.unuser.ratify.compliance.matchuser.ratify.compliance.pepuser.ratify.compliance.ukuser.ratify.compliance.custom-list-kyc-checkuser.ratify.compliance.iprsuser.ratify.compliance.internal_blacklistuser.ratify.compliance.securecitizenuser.ratify.compliance.euuser.ratify.compliance.ficuser.ratify.compliance.unscuser.ratify.compliance.french_listuser.ratify.compliance.safpsuser.ratify.compliance.all
JSON Event Layout:
{
"user": {
"userId": "string",
"tenantId": "string"
},
"result": {
"key": "value"
},
"tenantId": "string",
"associatedEntity": {
"user": "string"
}
}Field Descriptions:
user: The user that was ratified.userId: The ID of the user.tenantId: The ID of the tenant.
result: The result of the ratification.tenantId: The ID of the tenant.associatedEntity:user: The ID of the user.
payment-service
payment.payment.create
This event is published when a payment is created.
Event Type: payment.payment.create
JSON Event Layout:
{
"payment": {
"paymentId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"payment": "string"
}
}Field Descriptions:
payment: The payment that was created.paymentId: The ID of the payment.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:payment: The ID of the payment.
payment.withdrawal.create
This event is published when a withdrawal is created.
Event Type: payment.withdrawal.create
JSON Event Layout:
{
"withdrawal": {
"withdrawalId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"withdrawal": "string"
}
}Field Descriptions:
withdrawal: The withdrawal that was created.withdrawalId: The ID of the withdrawal.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:withdrawal: The ID of the withdrawal.
payment.payment.complete
This event is published when a payment is completed.
Event Type: payment.payment.complete
JSON Event Layout:
{
"payment": {
"paymentId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"payment": "string"
}
}Field Descriptions:
payment: The payment that was completed.paymentId: The ID of the payment.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:payment: The ID of the payment.
payment.withdrawal.complete
This event is published when a withdrawal is completed.
Event Type: payment.withdrawal.complete
JSON Event Layout:
{
"withdrawal": {
"withdrawalId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"withdrawal": "string"
}
}Field Descriptions:
withdrawal: The withdrawal that was completed.withdrawalId: The ID of the withdrawal.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:withdrawal: The ID of the withdrawal.
wallet-service
wallet.walletType.update
This event is published when a wallet type is updated.
Event Type: wallet.walletType.update
JSON Event Layout:
{
"walletType": {
"walletTypeId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"walletType": "string"
}
}Field Descriptions:
walletType: The wallet type that was updated.walletTypeId: The ID of the wallet type.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:walletType: The ID of the wallet type.
wallet.walletType.create
This event is published when a wallet type is created.
Event Type: wallet.walletType.create
JSON Event Layout:
{
"walletType": {
"walletTypeId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"walletType": "string"
}
}Field Descriptions:
walletType: The wallet type that was created.walletTypeId: The ID of the wallet type.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:walletType: The ID of the wallet type.
wallet.history.create
This event is published when a wallet history record is created.
Event Type: wallet.history.create
JSON Event Layout:
{
"walletHistory": [
{
"walletId": "string",
"balanceChange": "number"
}
],
"tenantId": "string"
}Field Descriptions:
walletHistory: A list of wallet history records.walletId: The ID of the wallet.balanceChange: The change in balance.
tenantId: The ID of the tenant.
wallet.transfer.create
This event is published when a transfer is created.
Event Type: wallet.transfer.create
JSON Event Layout:
{
"transfer": {
"fromWalletId": "string",
"toWalletId": "string",
"amount": "number"
},
"walletHistory": [
{
"walletId": "string",
"balanceChange": "number"
}
],
"fromWallet": {
"walletId": "string"
},
"toWallet": {
"walletId": "string"
},
"tenantId": "string",
"associatedEntity": {
"wallet": "string"
}
}Field Descriptions:
transfer: The transfer that was created.fromWalletId: The ID of the source wallet.toWalletId: The ID of the destination wallet.amount: The amount of the transfer.
walletHistory: A list of wallet history records.walletId: The ID of the wallet.balanceChange: The change in balance.
fromWallet: The source wallet.walletId: The ID of the source wallet.
toWallet: The destination wallet.walletId: The ID of the destination wallet.
tenantId: The ID of the tenant.associatedEntity:wallet: The ID of the source wallet.
wallet.reservation.create
This event is published when a reservation is created.
Event Type: wallet.reservation.create
JSON Event Layout:
{
"reservation": {
"reservationId": "string",
"walletId": "string",
"amount": "number"
},
"wallet": {
"walletId": "string"
},
"tenantId": "string",
"associatedEntity": {
"wallet": "string"
}
}Field Descriptions:
reservation: The reservation that was created.reservationId: The ID of the reservation.walletId: The ID of the wallet.amount: The amount of the reservation.
wallet: The wallet.walletId: The ID of the wallet.
tenantId: The ID of the tenant.associatedEntity:wallet: The ID of the wallet.
wallet.charge.create
This event is published when a charge is created.
Event Type: wallet.charge.create
JSON Event Layout:
{
"charge": {
"chargeRequestId": "string",
"walletId": "string",
"amount": "number"
},
"wallet": {
"walletId": "string"
},
"walletHistory": {
"walletHistoryId": "string"
},
"tenantId": "string",
"associatedEntity": {
"wallet": "string"
}
}Field Descriptions:
charge: The charge request.chargeRequestId: The ID of the charge request.walletId: The ID of the wallet.amount: The amount of the charge.
wallet: The wallet.walletId: The ID of the wallet.
walletHistory: The wallet history record.walletHistoryId: The ID of the wallet history record.
tenantId: The ID of the tenant.associatedEntity:wallet: The ID of the wallet.
wallet.wallet.update
This event is published when a wallet is updated.
Event Type: wallet.wallet.update
JSON Event Layout:
{
"wallet": {
"walletId": "string",
"status": "number"
},
"tenantId": "string",
"associatedEntity": {
"wallet": "string"
}
}Field Descriptions:
wallet: The wallet that was updated.walletId: The ID of the wallet.status: The new status of the wallet.
tenantId: The ID of the tenant.associatedEntity:wallet: The ID of the wallet.
wallet.wallet.create
This event is published when a wallet is created.
Event Type: wallet.wallet.create
JSON Event Layout:
{
"wallet": {
"walletId": "string"
},
"tenantId": "string",
"associatedEntity": {
"wallet": "string"
}
}Field Descriptions:
wallet: The wallet that was created.walletId: The ID of the wallet.
tenantId: The ID of the tenant.associatedEntity:wallet: The ID of the wallet.
wallet.mapping.create
This event is published when a wallet mapping is created.
Event Type: wallet.mapping.create
JSON Event Layout:
{
"walletMapping": {
"walletId": "string",
"mappingId": "string"
},
"tenantId": "string",
"associatedEntity": {
"wallet": "string"
}
}Field Descriptions:
walletMapping: The wallet mapping that was created.walletId: The ID of the wallet.mappingId: The ID of the mapping.
tenantId: The ID of the tenant.associatedEntity:wallet: The ID of the wallet.
wallet.reservation.delete
This event is published when a wallet reservation is deleted.
Event Type: wallet.reservation.delete
JSON Event Layout:
{
"reservation": {
"reservationId": "string",
"walletId": "string"
},
"tenantId": "string",
"associatedEntity": {
"wallet": "string"
}
}Field Descriptions:
reservation: The reservation that was deleted.reservationId: The ID of the reservation.walletId: The ID of the wallet.
tenantId: The ID of the tenant.associatedEntity:wallet: The ID of the wallet.
wallet.transfer.fraud
This event is published when a wallet transfer is flagged as potential fraud.
Event Type: wallet.transfer.fraud
JSON Event Layout:
{
"debitRow": {
"key": "value"
},
"creditRow": {
"key": "value"
},
"debitWallet": {
"key": "value"
},
"creditWallet": {
"key": "value"
},
"tenantId": "string",
"associatedEntity": {
"wallet": "string"
}
}Field Descriptions:
debitRow: Snippet of the debit wallet history row.creditRow: Snippet of the credit wallet history row.debitWallet: Snippet of the debit wallet.creditWallet: Snippet of the credit wallet.tenantId: The ID of the tenant.associatedEntity:wallet: The ID of the debit wallet.
wallet.transaction.failure
This event is published when a wallet transaction (transfer, reservation, or charge) fails before the transaction commits to the ledger. Because failed transactions are rolled back, this event is published immediately (not after commit).
Event Type: wallet.transaction.failure
JSON Event Layout:
{
"wallet": 51588,
"otherWallet": 51200,
"amount": -250.00,
"sessionId": "e69a8767-ab47-44f3-8cdc-e168c41b0a31",
"uniqueId": "FAIL-20240315-0042",
"description": "Insufficient funds",
"errorDescription": "Wallet balance 100.00 ZAR is less than requested debit 250.00 ZAR",
"errorCode": "INSUFFICIENT_FUNDS",
"tenantId": "string",
"associatedEntity": {
"wallet": "string",
"otherWallet": "string"
}
}Field Descriptions:
wallet: The ID of the wallet on which the transaction was attempted.otherWallet: The ID of the counterpart wallet (if applicable).amount: The attempted transaction amount (negative for debits).sessionId: The session identifier for the request.uniqueId: The unique identifier provided for the failed transaction.description: A human-readable description of the failure reason.errorDescription: Detailed error message from the system.errorCode: Machine-readable error code (e.g.INSUFFICIENT_FUNDS,WALLET_BARRED).tenantId: The ID of the tenant.associatedEntity:wallet: The ID of the primary wallet.otherWallet: The ID of the counterpart wallet.
wallet.history.fraud
This event is published when a fraud reference is set on a wallet history record — i.e. a completed transaction is subsequently flagged as fraudulent.
Event Type: wallet.history.fraud
JSON Event Layout:
{
"walletHistory": {
"walletHistoryId": 99021,
"walletId": 51588,
"fraudReference": "FRAUD-REF-20240315-001"
},
"tenantId": "string",
"associatedEntity": {
"wallet": "string"
}
}Field Descriptions:
walletHistory: The wallet history record that was flagged.walletHistoryId: The ID of the wallet history record.walletId: The ID of the wallet.fraudReference: The fraud case reference number.
tenantId: The ID of the tenant.associatedEntity:wallet: The ID of the wallet.
wallet.mapping.delete
This event is published when a wallet mapping (e.g. a QR code or card linkage) is removed from a wallet.
Event Type: wallet.mapping.delete
JSON Event Layout:
{
"walletMapping": {
"walletId": 51588,
"mappingId": "string"
},
"tenantId": "string",
"associatedEntity": {
"wallet": "string"
}
}Field Descriptions:
walletMapping: The wallet mapping that was deleted.walletId: The ID of the wallet.mappingId: The identifier of the mapping that was removed.
tenantId: The ID of the tenant.associatedEntity:wallet: The ID of the wallet.
wallet.dormant.cancel
This event is published when a dormancy flag on a wallet is cancelled (i.e. the wallet becomes active again after a period of inactivity triggered dormancy).
Event Type: wallet.dormant.cancel
JSON Event Layout:
{
"wallet": {
"walletId": 51588,
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"wallet": "string"
}
}Field Descriptions:
wallet: The wallet whose dormant status was cancelled.walletId: The ID of the wallet.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:wallet: The ID of the wallet.
eclipse-java/conductor
proxy.card.movement
This event is published when a card movement occurs.
Event Type: proxy.card.movement
JSON Event Layout (CardManagementPayload):
{
"CardManagementPayload": "string",
"tenantId": "string",
"associatedEntity": {
"card": "string"
}
}JSON Event Layout (PostilionServiceRequest):
{
"PostilionServiceRequest": "string",
"tenantId": "string",
"associatedEntity": {
"card": "string"
}
}Field Descriptions:
CardManagementPayload: The card management payload (sanitised JSON string).PostilionServiceRequest: The Postilion service request (sanitised JSON string).tenantId: The ID of the tenant.associatedEntity:card: The ID of the card.
reward-service
reward.create
This event is published when a reward is created.
Event Type: reward.create
JSON Event Layout:
{
"reward": {
"rewardId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"reward": "string"
}
}Field Descriptions:
reward: The reward that was created.rewardId: The ID of the reward.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:reward: The ID of the reward.
reward.complete
This event is published when a reward is completed.
Event Type: reward.complete
JSON Event Layout:
{
"reward": {
"rewardId": "string",
"tenantId": "string"
},
"tenantId": "string",
"associatedEntity": {
"reward": "string"
}
}Field Descriptions:
reward: The reward that was completed.rewardId: The ID of the reward.tenantId: The ID of the tenant.
tenantId: The ID of the tenant.associatedEntity:reward: The ID of the reward.
