Applies to:Developers

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

EventTriggerName in UIWebhook Payload
ApprovedPaymentA transaction is approvedApproved paymentView
AuthorizedPaymentA transaction is authorized, capture pendingAuthorized paymentView
DeclinedPaymentA transaction is declinedDeclined paymentView
FundedPaymentA transaction is fundedFunded paymentView
InvoiceCreatedAn invoice is createdInvoice createdView
InvoicePaidAny payment is received for an invoiceInvoices paidView
InvoiceSentAn invoice is sent to customerInvoices sentView
OriginatedPaymentA transaction is originatedOriginated paymentsView
RefundedPaymentA transaction is refundedRefunded paymentsView
RecoveredTransactionA timed-out transaction is recoveredRecovered transactionView
SettledPaymentA transaction is settled or sent to fundingSettled paymentsView
TransferAdjustedA transfer has been adjusted by PayabliTransfer adjustedView
TransferDisabledCreditFundCredit funding failed because the merchant doesn’t have an active credit serviceTransfer credit fund disabledView
TransferDisabledDebitFundDebit funding failed because the merchant doesn’t have an active debit serviceTransfer debit fund disabledView
TransferErrorFunding execution failedTransfer errorView
TransferNotAvailableBalanceFunding execution pending because available balance doesn’t cover the transferTransfer not available balanceView
TransferReadyforRetryA transfer is ready to be retried by PayabliTransfer ready for retryView
TransferResolvedA transfer has been resolved by PayabliTransfer resolvedView
TransferReturnFunding execution experienced a return, which is commonly due to insufficient funds, or problems with the external bank accountTransfer returnView
TransferSuccessFunding execution was successfulTransfer successView
TransferSuspendedMerchant funding suspendedTransfer suspendedView
VoidedPaymentA payment is voided or canceledVoided paymentsView

Pay Out events

EventTriggerName in UIWebhook Payload
BillApprovedA bill is approved to be paidBills were approvedView
BillCanceledA bill is canceledBills were canceledView
BillDisApprovedA bill is disapproved to be paidBills were rejectedView
BillPaidA bill is paidBills paidView
BillProcessingA payout is being processed for a billPayment for bills in transitView
PayOutCanceledA payout is canceledPayouts were canceledView
PayOutFundedA payout is fundedPayout fundedView
PayOutPaidA payout is paidPayouts were paidView
PayOutProcessedA payout is processedPayouts were processedView

Pay Ops events

Fraud and Risk events

EventTriggerName in UIWebhook Payload
FraudAlertA fraud alert is triggeredFraud alertsView
HoldTransactionA transaction is heldHold transactionView
HoldBatchA batch is heldHold batchView
ReleasedBatchA held batch is releasedReleased batchView
ReleasedTransactionA held transaction is releasedReleased transactionView

Boarding events

EventTriggerName in UIWebhook Payload
ActivatedMerchantA new merchant account is activatedPaypoints activatedView
BoardingApplicationAn application sent to “boarding” statusPaypoints boardedView
CreatedApplicationA new boarding application is createdApplications newly createdView
DeclinedApplicationAn application is declinedApplications declinedView
HoldingApplicationAn application is put on holdApplication is under reviewView
SubmittedApplicationA boarding application is sent to processingApplications submittedView
UnderWritingApplicationAn application is sent to underwritingApplication is in underwritingView

Other

EventTriggerName in UIWebhook Payload
exportFileErrorThere was an error generating an export fileFile transmission abortedView
exportFileSentA generated export file is sentFile sentView
importFileErrorAn imported file was rejected because of errorsFile processing aborted by errorsView
importFileProcessedAn imported file was processedFile processedView
importFileReceivedA file is received for import data via Payabli eXchangeFile receivedView
UpdatedMerchantTriggered when a paypoint (merchant) record is updatedN/AView
ReceivedAchReturnA returned ACH is receivedACH returnsView
ReceivedChargeBackA chargeback is receivedCredit card chargebacksView
ReportPre-defined event name for methods report-email and report-webN/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)

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

See Webhook Payload Reference 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:

{
  "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:

{
  "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:

{
  "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.

ValueKey
Active1
Inactive0