Notifications and reports overview

Get automated reports and notifications for key events
View as MarkdownOpen in Claude
Applies to:DevelopersPartners

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 event’s canonical name, and the eventType value you pass to the notification API.
  • The Trigger column describes what triggers the event.
  • The Name in Portal column is the event’s name on the Portal’s notification settings page.
  • The Payload column links to the event’s payload in the webhooks reference.

Pay In events

Payments

EventTriggerName in PortalPayload
approvedpaymentA payment is approvedApproved PaymentView
authorizedpaymentA payment is authorizedAuthorized PaymentView
declinedpaymentA payment is declinedDeclined PaymentView
fundedpaymentA payment is fundedFunded PaymentView
originatedpaymentAn ACH payment is originated and batchedOriginated PaymentView
refundedpaymentA payment is refundedRefunded PaymentView
settledpaymentA payment is settledSettled PaymentView
voidedpaymentA payment is voidedVoided PaymentView

Transactions and batches

EventTriggerName in PortalPayload
payin_transaction_onholdA Pay In transaction is placed on holdTransaction On HoldView
payin_transaction_releasedA Pay In transaction is released from holdTransaction ReleasedView
payin_transaction_recoveredA Pay In transaction is recoveredTransaction RecoveredView
payin_transaction_rejectedA Pay In transaction is rejectedTransaction RejectedView
payin_batch_onholdA Pay In batch is placed on holdBatch On HoldView
payin_batch_releasedA Pay In batch is released from holdBatch ReleasedView

Transfers

EventTriggerName in PortalPayload
transfersuccessA transfer completes successfullyTransfer SuccessView
transferadjustedA transfer is adjustedTransfer AdjustedView
transferreturnA transfer is returnedTransfer ReturnView
transfererrorA transfer encounters an errorTransfer ErrorView
transferbalanceunavailableA transfer can’t be made because the available balance is insufficientTransfer Balance UnavailableView
transferreadyforretryA transfer is ready to be retriedTransfer Ready for RetryView
transferresolvedA transfer is resolvedTransfer ResolvedView
transfersuspendedA transfer is suspendedTransfer SuspendedView
transferdisabledcreditfundCredit funding is disabled for a transferTransfer Credit Fund DisabledView
transferdisableddebitfundDebit funding is disabled for a transferTransfer Debit Fund DisabledView

Invoices

EventTriggerName in PortalPayload
invoicecreatedAn invoice is createdInvoice CreatedView
invoicesentAn invoice is sent to a customerInvoice SentView
invoicepaidAn invoice is paidInvoice PaidView

Subscriptions

EventTriggerName in PortalPayload
subscriptioncreatedA subscription is createdSubscription CreatedView
subscriptionupdatedA subscription is updatedSubscription UpdatedView
subscriptioncanceledA subscription is canceledSubscription CanceledView
subscriptioncompletedA subscription is completedSubscription CompletedView

Accounts

EventTriggerName in PortalPayload
savedmethodupdatedA customer’s saved payment method is updated following a notification of changeSaved Method UpdatedView
nocreceivedA notification of change (NOC) is received for a customer’s bank accountNOC ReceivedView

Pay Out events

Transactions

EventTriggerName in PortalPayload
payout_transaction_voidedcancelledA payout transaction is voided or canceledPayout Transaction Voided/CancelledView
payout_transaction_processingA payout transaction enters processing statusPayout Transaction ProcessingView
payout_transaction_processedA payout transaction is processedPayout Transaction ProcessedView
payout_transaction_onholdA payout transaction is placed on holdPayout Transaction On HoldView
payout_transaction_releasedA payout transaction is released from holdPayout Transaction ReleasedView
payout_transaction_recoveredA payout transaction is recoveredPayout Transaction RecoveredView
payout_transaction_authorizedA payout transaction is authorizedPayout Transaction AuthorizedView
payout_transaction_approvedcapturedA payout transaction is approved and capturedPayout Transaction Approved/CapturedView
payout_transaction_declinedA payout transaction is declinedPayout Transaction DeclinedView
payout_transaction_technicaldeclineA payout transaction is declined due to technical reasonsPayout Transaction Technical DeclineView
payout_transaction_errorA payout transaction encounters an errorPayout Transaction ErrorView
payout_transaction_paidA payout transaction is paidPayout Transaction PaidView
payout_transaction_returnedA payout transaction is returnedPayout Transaction ReturnedView
payout_transaction_rejectedA payout transaction is rejectedPayout Transaction RejectedView
payout_transaction_duplicatedPayabli’s duplicate detection flags a payout transaction as a potential duplicatePayout Transaction DuplicatedView
payout_transaction_fundedA payout transaction is fundedPayout Transaction FundedView
payout_transaction_reissuedA payout transaction is reissuedPayout Transaction ReissuedView

Settlements

EventTriggerName in PortalPayload
payout_batch_settlement_pendingA payout batch settlement is pendingPayout Settlement PendingView
payout_batch_settlement_intransitA payout batch settlement is in transitPayout Settlement In TransitView
payout_batch_settlement_fundedA payout batch settlement is fundedPayout Settlement FundedView
payout_batch_settlement_exceptionA payout batch settlement encounters an exceptionPayout Settlement ExceptionView
payout_batch_settlement_achreturnA payout batch settlement has an ACH return or chargebackPayout Settlement ACH ReturnView

Batches

EventTriggerName in PortalPayload
payout_batch_paidA payout batch is paidPayout Batch PaidView
payout_batch_fundpendingA payout batch has funding pendingPayout Batch Fund PendingView
payout_batch_closedA payout batch is closedPayout Batch ClosedView
payout_batch_notclosedA payout batch fails to closePayout Batch Not ClosedView
payout_batch_cancelledA payout batch is canceledPayout Batch CancelledView

Funds

EventTriggerName in PortalPayload
payout_funds_addedFunds are added to the Payabli accountPayout Funds AddedView
payout_funds_availableFunds become available in the Payabli accountPayout Funds AvailableView
payout_funds_returnedFunds are returned to the Payabli accountPayout Funds ReturnedView

Cards

EventTriggerName in PortalPayload
payout_virtualcard_transaction_acceptedA virtual card transaction to a vendor is acceptedPayout Virtual Card Transaction AcceptedView
payout_virtualcard_transaction_declinedA virtual card transaction to a vendor is declinedPayout Virtual Card Transaction DeclinedView
payout_ghostcard_transaction_acceptedA ghost card transaction to a vendor is acceptedGhost Card Transaction AcceptedView
payout_ghostcard_transaction_declinedA ghost card transaction to a vendor is declinedGhost Card Transaction DeclinedView
payout_fund_virtualcard_transaction_successA virtual card transaction for a vendor is funded successfullyPayout Virtual Card Transaction Funded SuccessfullyView
payout_fund_virtualcard_transaction_errorFunding a virtual card transaction for a vendor failsPayout Virtual Card Transaction Fund ErrorView
vcardcreatedA virtual card is created for a vendorVirtual Card CreatedView
vcardsentA virtual card is sent to a vendorVirtual Card SentView

Bills

EventTriggerName in PortalPayload
billapprovedA bill is approved for paymentBill ApprovedView
billdisapprovedA bill is disapprovedBill DisapprovedView
billpaidA bill is paidBill PaidView
billprocessingA bill payment is processingBill ProcessingView
billsentA bill is sentBill SentView
billcanceledA bill or its payment is canceledBill CanceledView

Vendors

EventTriggerName in PortalPayload
vendor_createdA vendor is createdVendor CreatedView
vendor_updatedA vendor is updatedVendor UpdatedView
vendor_ach_payment_method_createdAn ACH payment method is created for a vendorVendor ACH Payment Method CreatedView

Subscriptions

EventTriggerName in PortalPayload
payoutsubscriptioncreatedA payout subscription is createdPayout Subscription CreatedView
payoutsubscriptionupdatedA payout subscription is updatedPayout Subscription UpdatedView
payoutsubscriptionreminderA payout subscription charge is upcomingPayout Subscription ReminderView
payoutsubscriptioncompletedA payout subscription is completedPayout Subscription CompletedView
payoutsubscriptioncanceledA payout subscription is canceledPayout Subscription CanceledView

Accounts

EventTriggerName in PortalPayload
payoutsavedmethodupdatedA vendor’s saved payment method is updated following a notification of changePayout Saved Method UpdatedView
payoutnocreceivedA notification of change (NOC) is received for a vendor’s payout accountPayout NOC ReceivedView

Pay Ops events

Boarding

EventTriggerName in PortalPayload
approvedapplicationA boarding application is approvedApplication ApprovedView
boardingapplicationA boarding application enters the boarding statusApplication BoardingView
createdapplicationA boarding application is createdApplication CreatedView
declinedapplicationA boarding application is declinedApplication DeclinedView
holdingapplicationA boarding application is placed on holdApplication On HoldView
submittedapplicationA boarding application is submittedApplication SubmittedView
failedboardingapplicationA boarding application failsApplication Boarding FailedView

Merchants

EventTriggerName in PortalPayload
activatedmerchantA merchant account is activatedMerchant ActivatedView
cardupdatercompleteThe card updater finishes updating a stored cardCard Updater CompleteView
updatedmerchantA merchant account is updatedMerchant UpdatedView

Disputes and chargebacks

EventTriggerName in PortalPayload
receivedchargebackA chargeback is receivedReceived ChargebackView
chargebackupdatedA chargeback status changesChargeback UpdatedView
chargebackreversalA chargeback reversal is receivedChargeback ReversalView
receivedprearbitrationA chargeback pre-arbitration is receivedReceived Pre-ArbitrationView
receivedretrievalA retrieval request is receivedReceived RetrievalView
receivedachreturnAn ACH return is received on a money-in transactionReceived ACH ReturnView

Fraud and risk

EventTriggerName in PortalPayload
fraudalertA potentially fraudulent payment attempt is detectedFraud AlertView
transactionnotfoundA dispute or notice references a transaction that can’t be foundTransaction Not FoundView

Files and reports

EventTriggerName in PortalPayload
importfilereceivedAn import file is receivedImport File ReceivedView
importfileprocessedAn import file is processedImport File ProcessedView
importfileerrorAn import file is invalid or can’t be processedImport File ErrorView
exportfilesentAn export file is sentExport File SentView
exportfileerrorAn export file can’t be sentExport File ErrorView
exportreportcompletedA report export completes and is ready to downloadExport Report CompletedView

Routing

EventTriggerName in PortalPayload
paypointroutingupdatedA paypoint’s bank routing details are updated following a notification of changePaypoint Routing UpdatedView
paypointaccountnocreceivedA notification of change (NOC) is received for a paypoint’s bank accountPaypoint Account NOC ReceivedView

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)

For webhook notifications, Payabli offers flexibility so you can build and use the notifications as needed.

See the webhooks reference for example notification webhook payloads.

How webhook delivery works

Here’s the lifecycle of a webhook notification, from event trigger to delivery (or manual retry):

Flowchart of the webhook notification delivery flow: queue, HTTP POST, success or retry branch, and manual retry.
  1. An event occurs (for example, ApprovedPayment).
  2. Payabli queues the notification within 5 minutes of the trigger.
  3. Payabli sends an HTTP POST to the webhook URL.
  4. Your server responds:
    • If the response is a success code (for example, 200), delivery is complete.
    • If the response isn’t a success code, Payabli waits 5 minutes and retries — up to 2 retries. After the second failed retry, delivery is marked failed and is available for manual retry via the notification logs API.

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:

1{
2 "ownerId": 20,
3 "ownerType": 0,
4 "method": "web",
5 "frequency": "untilcancelled",
6 "target": "https://mywebhook.domain.com/entrypoint",
7 "content": {
8 "eventType": "approvedpayment",
9 "webHeaderParameters":[
10 {"key":"Authorization","value":"Basic AD4566F3S2T76901"}
11 ]
12 }
13}

You can also send any other variable in the body with some custom data using the field internalData in the content object:

1{
2 "ownerId": 20,
3 "ownerType": 0,
4 "method": "web",
5 "frequency": "untilcancelled",
6 "target": "https://mywebhook.domain.com/entrypoint",
7 "content": {
8 "eventType": "approvedpayment",
9 "webHeaderParameters":[
10 {"key":"Authorization","value":"Basic AD4566F3S2T76901"}
11 ],
12 "internalData":[
13 {"key":"myData1","value":"Value1"},
14 {"key":"myData2","value":"Value2"}
15 ]
16 }
17}

IP addresses for webhook requests

Payabli sends webhook requests from specific IP addresses depending on the environment. If your server blocks incoming requests from unknown sources, add the following IP addresses to your server’s allowlist:

  • 52.3.204.115 (sandbox)
  • 54.166.54.170 (production)

Retry logic

If sending a webhook fails, Payabli retries the webhook POST 2 times in 5-minute intervals. If the request fails after 2 retries, you can manually resend the failed webhook notification via the API. Follow the steps below to manually resend a failed webhook notification:

1

Find failed notification ID

To find the ID of the failed notification, you can search Payabli’s notification logs by calling the POST /api/v2/notificationlogs endpoint. When calling the endpoint, make sure to pass the "succeeded": false field in the request to filter for failed notifications. See Search notification logs for more information.

2

Resend failed notification

To resend a failed notification, call the GET /api/v2/notificationlogs/{uuid}/retry endpoint. Replace {uuid} with the ID of the failed notification you found in the previous step. When you call the endpoint, Payabli attempts to resend the webhook notification to your server. Your server must respond to the webhook with a success HTTP response code (example: 200). See Retry notification for more information.

Send a success response

Your webhook server must send a success HTTP response code (example: 200) when the payload is successfully received. If you send nothing, or send an error response code (example: 401), 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.

Both report methods use the predefined eventType value Report instead of one of the event names listed above.

You can generate the files in CSV, XLSX, and JSON format.

This example creates a daily transaction report and sends it via email:

1{
2 "ownerId": 20,
3 "ownerType": 0,
4 "method": "report-email",
5 "frequency": "daily",
6 "target": "myemail@myDomain.com",
7 "content": {
8 "fileFormat":"csv",
9 "reportName":"Transaction"
10 }
11}

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.

ValueKey
Active1
Inactive0

See these related resources to help you get the most out of Payabli.