> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://beta-docs.payabli.com/developer-guides/notifications-and-webhooks-overview/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://beta-docs.payabli.com/_mcp/server. # Notifications and reports overview Payabli has a notifications engine that lets you create notifications for various events using different communication channels: **email**, **phone (SMS)** and **web (webhooks)**. The engine also lets you autogenerate reports and send them via email or webhook. ## Notifications Get near-instant notifications via email, SMS, or webhooks for important events like new payment disputes, merchant activations, fraud alerts, approved transactions, settlement history, vendor payouts, and more. Use webhooks with notifications to get real-time updates and automate operations based on key those key events. An event alerts you when an action has been completed. When you create a notification for an event, Payabli adds a notification to the notification queue within 5 minutes of the event trigger. The notification engine sends the notification's information to the target via the channel you configure, either web (webhooks), SMS, or email. The information provided with each notification varies by type. In the following tables: * The **Event** column is the `eventType` value used with the notification API. * The **Trigger** column describes what triggers the event. * The **Name in Web App** column describes the notification name in the web app's notification settings page. ### Pay In events
Event Trigger Name in UI Webhook Payload
ApprovedPayment A transaction is approved Approved payment [View](/developer-guides/webhook-payloads#approvedpayment)
AuthorizedPayment A transaction is authorized, capture pending Authorized payment [View](/developer-guides/webhook-payloads#authorizedpayment)
DeclinedPayment A transaction is declined Declined payment [View](/developer-guides/webhook-payloads#declinedpayment)
FundedPayment A transaction is funded Funded payment [View](/developer-guides/webhook-payloads#fundedpayment)
InvoiceCreated An invoice is created Invoice created [View](/developer-guides/webhook-payloads#invoicecreated)
InvoicePaid Any payment is received for an invoice Invoices paid [View](/developer-guides/webhook-payloads#invoicepaid)
InvoiceSent An invoice is sent to customer Invoices sent [View](/developer-guides/webhook-payloads#invoicesent)
OriginatedPayment A transaction is originated Originated payments [View](/developer-guides/webhook-payloads#originatedpayment)
RefundedPayment A transaction is refunded Refunded payments [View](/developer-guides/webhook-payloads#refundedpayment)
RecoveredTransaction A timed-out transaction is recovered Recovered transaction [View](/developer-guides/webhook-payloads#recoveredtransaction)
SettledPayment A transaction is settled or sent to funding Settled payments [View](/developer-guides/webhook-payloads#settledpayment)
TransferAdjusted A transfer has been adjusted by Payabli Transfer adjusted [View](/developer-guides/webhook-payloads#transferadjusted)
TransferDisabledCreditFund Credit funding failed because the merchant doesn't have an active credit service Transfer credit fund disabled [View](/developer-guides/webhook-payloads#transferdisabledcreditfund)
TransferDisabledDebitFund Debit funding failed because the merchant doesn't have an active debit service Transfer debit fund disabled [View](/developer-guides/webhook-payloads#transferdisableddebitfund)
TransferError Funding execution failed Transfer error [View](/developer-guides/webhook-payloads#transfererror)
TransferNotAvailableBalance Funding execution pending because available balance doesn't cover the transfer Transfer not available balance [View](/developer-guides/webhook-payloads#transfernotavailablebalance)
TransferReadyforRetry A transfer is ready to be retried by Payabli Transfer ready for retry [View](/developer-guides/webhook-payloads#transferreadyforretry)
TransferResolved A transfer has been resolved by Payabli Transfer resolved [View](/developer-guides/webhook-payloads#transferresolved)
TransferReturn Funding execution experienced a return, which is commonly due to insufficient funds, or problems with the external bank account Transfer return [View](/developer-guides/webhook-payloads#transferreturn)
TransferSuccess Funding execution was successful Transfer success [View](/developer-guides/webhook-payloads#transfersuccess)
TransferSuspended Merchant funding suspended Transfer suspended [View](/developer-guides/webhook-payloads#transfersuspended)
VoidedPayment A payment is voided or canceled Voided payments [View](/developer-guides/webhook-payloads#voidedpayment)
### Pay Out events
Event Trigger Name in UI Webhook Payload
BillApproved A bill is approved to be paid Bills were approved [View](/developer-guides/webhook-payloads#billapproved)
BillCanceled A bill is canceled Bills were canceled [View](/developer-guides/webhook-payloads#billcanceled)
BillDisApproved A bill is disapproved to be paid Bills were rejected [View](/developer-guides/webhook-payloads#billdisapproved)
BillPaid A bill is paid Bills paid [View](/developer-guides/webhook-payloads#billpaid)
BillProcessing A payout is being processed for a bill Payment for bills in transit [View](/developer-guides/webhook-payloads#billprocessing)
PayOutCanceled A payout is canceled Payouts were canceled [View](/developer-guides/webhook-payloads#payoutcanceled)
PayOutFunded A payout is funded Payout funded [View](/developer-guides/webhook-payloads#payoutfunded)
PayOutPaid A payout is paid Payouts were paid [View](/developer-guides/webhook-payloads#payoutpaid)
PayOutProcessed A payout is processed Payouts were processed [View](/developer-guides/webhook-payloads#payoutprocessed)
### Pay Ops events #### Fraud and Risk events
Event Trigger Name in UI Webhook Payload
FraudAlert A fraud alert is triggered Fraud alerts [View](/developer-guides/webhook-payloads#fraud-events)
HoldTransaction A transaction is held Hold transaction [View](/developer-guides/webhook-payloads#holdtransaction)
HoldBatch A batch is held Hold batch [View](/developer-guides/webhook-payloads#holdbatch)
ReleasedBatch A held batch is released Released batch [View](/developer-guides/webhook-payloads#releasedbatch)
ReleasedTransaction A held transaction is released Released transaction [View](/developer-guides/webhook-payloads#releasedtransaction)
#### Boarding events
Event Trigger Name in UI Webhook Payload
ActivatedMerchant A new merchant account is activated Paypoints activated [View](/developer-guides/webhook-payloads#activatedmerchant)
BoardingApplication An application sent to "boarding" status Paypoints boarded [View](/developer-guides/webhook-payloads#boardingapplication)
CreatedApplication A new boarding application is created Applications newly created [View](/developer-guides/webhook-payloads#createdapplication)
DeclinedApplication An application is declined Applications declined [View](/developer-guides/webhook-payloads#declinedapplication)
HoldingApplication An application is put on hold Application is under review [View](/developer-guides/webhook-payloads#holdingapplication)
SubmittedApplication A boarding application is sent to processing Applications submitted [View](/developer-guides/webhook-payloads#submittedapplication)
UnderWritingApplication An application is sent to underwriting Application is in underwriting [View](/developer-guides/webhook-payloads#underwritingapplication)
#### Other
Event Trigger Name in UI Webhook Payload
exportFileError There was an error generating an export file File transmission aborted [View](/developer-guides/webhook-payloads#exportfileerror)
exportFileSent A generated export file is sent File sent [View](/developer-guides/webhook-payloads#exportfilesent)
importFileError An imported file was rejected because of errors File processing aborted by errors [View](/developer-guides/webhook-payloads#importfileerror)
importFileProcessed An imported file was processed File processed [View](/developer-guides/webhook-payloads#importfileprocessed)
importFileReceived A file is received for import data via Payabli eXchange File received [View](/developer-guides/webhook-payloads#importfilereceived)
UpdatedMerchant Triggered when a paypoint (merchant) record is updated N/A [View](/developer-guides/webhook-payloads#updatedmerchant)
ReceivedAchReturn A returned ACH is received ACH returns [View](/developer-guides/webhook-payloads#receivedachreturn)
ReceivedChargeBack A chargeback is received Credit card chargebacks [View](/developer-guides/webhook-payloads#receivedchargeback)
Report Pre-defined event name for methods **report-email** and **report-web** N/A
For email and SMS methods, The notification includes only the notification content in the email body or in the text for SMS. ## Set up and receive events using Web (webhooks)\[#set-up-webhooks] For webhook notifications, Payabli offers flexibility so you can build and use the notifications as needed. > **Tip** > > See [Webhook Payload Reference](/developer-guides/webhook-payloads) for example notification webhook payloads. The web notifications are sent to the target URL via HTTP POST. When you create the notification, specify any custom headers or fields to submit with the event in the request. The notification uses standard HTTPS ports: `80`, `443`, `8080`, or `4443`. If needed, you can include an Authorization header for your webhook server in the field `webHeaderParameter` in the `content` object. For example, if your webhook server requires basic authorization and your key is `AD4566F3S2T76901`, then your request would look like this: ```json { "ownerId": 20, "ownerType": 0, "method": "web", "frequency": "untilcancelled", "target": "https://mywebhook.domain.com/entrypoint", "content": { "eventType": "ApprovedPayment", "webHeaderParameters":[ {"Authorization":"Basic AD4566F3S2T76901"} ] } } ``` You can also send any other variable in the body with some custom data using the field `internalData` in the content object: ```json { "ownerId": 20, "ownerType": 0, "method": "web", "frequency": "untilcancelled", "target": "https://mywebhook.domain.com/entrypoint", "content": { "eventType": "ApprovedPayment", "webHeaderParameters":[ {"Authorization":"Basic AD4566F3S2T76901"} ], "internalData":[ {"myData1":"Value1"}, {"myData2":"Value2"} ] } } ``` ### Retry logic If sending the webhook fails, Payabli retries the webhook POST 5 times in 5-minute intervals. If the request fails after 5 retries, it stays in the queue with the status failed for 48 hours. You can request that Payabli re-send it manually if necessary. ### Send a 200 response Your webhook server must send a 200 response when the payload is successfully received. If you send nothing, or anything other than a 200 response, Payabli assumes it has failed and the retry logic causes the payload to be sent several times. ## Automated reports Automated reporting lets you gather critical reports without manually filtering and exporting the data. Get automated daily, weekly, and monthly report for daily sales, ACH returns, settlements, and more. You can send these reports via email or via webhook. The notification engine lets you schedule autogenerated reports with different frequencies: "daily", "weekly", "biweekly", "monthly", "quarterly", "semiannually", "annually". The reports are sent to the target (destination) using either `report-email` or `report-web` where the expected targets are email address or a URL. For method `report-email` the report is attached to an email. For the method `report-web` the file is sent via HTTP POST as "multipart/form-data" and in the field `file`. Like with events, you can specify custom headers and internal data to be passed to your application in the HTTP request. You can generate the files in CSV, XLSX, and JSON format. This example creates a daily transaction report and sends it via email: ```json { "ownerId": 20, "ownerType": 0, "method": "report-email", "frequency": "daily", "target": "myemail@myDomain.com", "content": { "fileFormat":"csv", "reportName":"Transaction" } } ``` ## Notification status When you create or manage a notification or autogenerated report via the API, you can enable or disable it with the `status` parameter. Setting a notification to Inactive disables it, and setting it to Active enables it.
Value Key
Active 1
Inactive 0
> If you're a software company, you're a payments company™