Skip to content

Search is only available in production builds. Try building and previewing the site to test it out locally.

Introduction & Webhooks

Whenever a successful action happens on Celbux, it is funneled through the Notification Engine. This microservice allows integrators to execute automated HTTP callbacks (webhooks), as well as dispatch conditional SMS and Email notifications based on the exact event that occurred.

Events such as /createVoucher, /pay, and /withdraw can be hooked into, and dynamic variables for the event are delivered in real-time. These events are configured per community and are identified by a unique Transaction Type (TT).

The Notification Engine can send a standard HTTPS POST request with a JSON payload to an endpoint of your choosing. Custom headers can be specified within the community configuration (e.g., specific Authorization keys), and the engine will always automatically inject Content-Type: application/json.

Please note that each TT will populate different variables. If a variable is not applicable to a specific TT, it will be sent through as a zero-value (0 for integers/floats, and "" for strings).

When the Notification Engine constructs a payload, it exposes a massive state of variables linked to the transaction. Below is a categorized, exhaustive list of all fields that will be generated in your JSON payload or SMS templates.

Note: Security fields (Misc_Password, and Misc_OTP) are completely excluded from webhook JSON payloads for security purposes, but they are accessible for standard SMS/Email messaging routing.

Context on the core action that triggered the Notification Engine.

FieldTypeDescription
Action_CommunityStringThe community namespace where the action occurred.
Action_DisbursementUIDxStringThe unique ID of the disbursement batch (if applicable).
Action_IDIntegerInternal Action ID.
Action_NamespaceStringPrimary routing namespace.
Action_TTIntegerThe Transaction Type (TT) triggered.
Action_VoucherTypeStringThe general voucher type referenced during the action.

Details about the voucher currently being transacted.

FieldTypeDescription
Voucher_AmountIntegerBalance of the voucher in cents.
Voucher_AmountStrStringFormatted balance string (e.g. R10.00).
Voucher_DisplayNameStringUser-facing title for the voucher type community.
Voucher_NoStringUnique voucher number.
Voucher_TitleStringFully formatted string representing the voucher.
Voucher_TypeStringString identifier of the voucher type.
Voucher_WithdrawFeeIntegerFee charged to withdraw the voucher in cents.
Voucher_WithdrawFeeStrStringFormatted withdrawal fee string.

The core financial ledger values linked to this exact transaction.

FieldTypeDescription
Audit_AmountIntegerTransaction amount in cents.
Audit_AmountNetIntegerThe net amount after commissions/fees.
Audit_AmountNetStrStringFormatted net amount string.
Audit_AmountStrStringFormatted transaction amount string.
Audit_CommsIntegerTotal commission/fees charged.
Audit_CommsNetIntegerNet commissions recorded.
Audit_CommsNetStrStringFormatted net commissions string.
Audit_CommsStrStringFormatted total commissions string.
Audit_FromBalanceIntegerThe payer’s wallet/voucher balance after transaction.
Audit_FromBalanceStrStringFormatted payer balance string.
Audit_FromCardPANNoStringAssociated PAN number of the payer (if a card transaction).
Audit_IDIntegerUnique identifier for the audit record.
Audit_LastTransactionIntegerTimestamp of the last transaction.
Audit_MetadataStringExtracted JSON string containing transaction metadata.
Audit_NewUserIntegerIndicates whether a new user was created (1) or not (0).
Audit_OverdraftIntegerOverdraft utilization value in cents.
Audit_OverdraftStrStringFormatted overdraft string.
Audit_TimestampIntegerExact execution timestamp of the ledger entry.
Audit_ToBalanceIntegerThe payee’s wallet/voucher balance after transaction.
Audit_ToBalanceStrStringFormatted payee balance string.
Audit_ToCardPANNoStringAssociated PAN number of the payee (if a card transaction).
Audit_TrxIDStringUnique transaction ID reference.
Audit_TTIntegerAudit-specific Transaction Type.
Audit_TypeStringDescriptive name of the transaction type (e.g., Buy, Withdraw).

Both From_ (the payer) and To_ (the payee) share identical data objects reflecting the user’s state on the platform. (Replace the prefix below with To_ to get the payee’s variables).

FieldTypeDescription
From_AccountNameStringBank account holder name.
From_AccountNumberStringBank account number.
From_AccountTypeStringBank account type (Savings, Cheque, etc).
From_BalanceIntegerCurrent user wallet balance in cents.
From_BalanceStrStringFormatted user wallet balance.
From_BankNameStringUser’s bank institution name.
From_BannerImageUrlStringURL of the profile banner.
From_BranchCodeStringBank branch code.
From_CanWithdrawStringIndicator if user is authorized to withdraw.
From_CommercialRegistrationNumberStringCommercial entity registration number.
From_CommissionFloatBase commission configuration percentage.
From_CurrencyStringDefault currency code (e.g. ZAR).
From_DepositCommsFloatPercentage taken on deposits.
From_DepositCommsMaxIntegerMaximum deposit commission in cents.
From_DepositCommsMaxStrStringFormatted maximum deposit commission.
From_DepositCommsMinIntegerMinimum deposit commission in cents.
From_DepositCommsMinStrStringFormatted minimum deposit commission.
From_DepositFeeIntegerFlat fee applied to deposits.
From_DepositFeeStrStringFormatted deposit fee.
From_DisplayNameStringFormatted display name for the user.
From_EmailStringRegistered email address.
From_FirstNameStringUser’s first name.
From_GroupStringCategorization group of the user.
From_HouseNumberStringPhysical address house number.
From_IDNumberStringNational ID or Passport number.
From_KYCStatusStringCurrent KYC verification tier.
From_LastTransactionIntegerTimestamp of user’s last ledger movement.
From_LastNameStringUser’s last name.
From_LatitudeFloatGeo-location latitude.
From_LongitudeFloatGeo-location longitude.
From_LowBalanceAlertAmountIntegerThreshold for sending low balance alerts.
From_LowBalanceAlertAmountStrStringFormatted low balance threshold.
From_MSISDNStringCellphone number used for communications.
From_NotificationChannelsStringPreferred methods of contact (SMS, Email, etc).
From_OverdraftIntegerAllowable overdraft limit.
From_OverdraftStrStringFormatted overdraft limit.
From_ProfileImageUrlStringURL of the user’s profile image.
From_ProviderStringTop-level provider organization name.
From_ProvinceStringPhysical address province.
From_StatusStringActive status of the user profile.
From_StreetNameStringPhysical address street name.
From_SuburbStringPhysical address suburb.
From_TaxNumberStringRegistered tax entity number.
From_TimezoneStringLocal timezone (e.g., Africa/Johannesburg).
From_TownStringPhysical address town.
From_TransferCommissionFloatCommission applied to standard P2P transfers.
From_TypeStringSingle letter user role (e.g., S, M).
From_UMetadataStringStringified metadata attached to the user.
From_UserIDIntegerInternal User ID.
From_UsernameStringUnique system username.
From_UsernameHistoryStringRecord of previous usernames linked to this account.
From_VerificationStringVerification status text (e.g., Verified).

Information gathered from the system’s request pipeline, tracking API origin, IPs, and context. (Shares many variables with User State, representing the executing user).

FieldTypeDescription
Log_ActionStringDescriptive action being requested.
Log_ErrorStringThe exact error message thrown, if any.
Log_HostNameStringOrigin host of the request.
Log_HostPortStringOrigin port of the request.
Log_IDIntegerUnique identifier for the log entry.
Log_IPAddressStringOrigin IP address.
Log_MetadataStringRequest metadata string.
Log_StatusStringResponse status text.
Log_StoreIDStringRequesting merchant’s StoreID.
Log_TIDStringMaster Transaction ID of the request.
Log_TimestampIntegerExecution timestamp of the request.
Log_UsernameStringUsername of the executor.
Log_XForwardedStringRaw X-Forwarded-For header string.
Log_XForwarded1StringParsed client IP from X-Forwarded-For.

Details of the exact failure point if the action failed.

FieldTypeDescription
Error_ActionStringAction that triggered the error.
Error_AmountIntegerAmount attempted.
Error_AmountStrStringFormatted amount attempted.
Error_IDIntegerInternal error log ID.
Error_MessageStringHuman readable string detailing why the process failed.
Error_MetadataStringContextual metadata related to the error.
Error_StatusIntegerStatus code associated with the error.
Error_TimestampIntegerTimestamp the error occurred.
Error_TreasuryStringTreasury/Community associated with the failed action.

Helper variables passed into templates (e.g., merged vouchers, one-time pins, balance alerts).

FieldTypeDescription
Misc_ExpiryStrStringString detailing when a token/OTP expires.
Misc_IsViralCreateUserStringIndicates if the user was created virally without upfront registration.
Misc_LowBalanceAlertAmountIntegerAlert threshold triggered in cents.
Misc_LowBalanceAlertAmountStrStringFormatted alert threshold triggered.
Misc_NewMSISDNStringThe new MSISDN being migrated to.
Misc_OTPStringAvailable for SMS/Email only. The requested One-Time PIN.
Misc_PasswordStringAvailable for SMS/Email only. Generated password for viral user creation.
Misc_SettleVoucherAmountIntegerValue of the newly settled/accumulated voucher in cents.
Misc_SettleVoucherAmountStrStringFormatted value of the settled voucher.
Misc_SettleVoucherDisplayNameStringDisplay name of the settled voucher.
Misc_SettleVoucherNoStringThe new unique voucher number generated post-settlement.

If the transaction interacted with physical/digital linked cards. Both FromCardPAN_ and ToCardPAN_ objects are available.

FieldTypeDescription
FromCardPAN_AutoCreateVoucherStringIndicator if card automatically handles voucher translation.
FromCardPAN_CardBalanceIntegerCard balance strictly linked to the PAN in cents.
FromCardPAN_CardBalanceStrStringFormatted PAN balance.
FromCardPAN_CardStatusStringCurrent active state of the card.
FromCardPAN_CommunityStringCommunity the card is locked to.
FromCardPAN_DisplayNameStringFriendly display name for the card.
FromCardPAN_OwnerStringUsername of the PAN owner.
FromCardPAN_TypeStringVoucher Type underlying the PAN limit.
FromCardPAN_UserBalanceIntegerTotal user balance associated across limits.
FromCardPAN_UserBalanceStrStringFormatted user PAN balance.
FromCardPAN_WithdrawFeeIntegerPAN-specific withdrawal fee.
FromCardPAN_WithdrawFeeStrStringFormatted PAN withdrawal fee.