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.

Money in events

EventTriggerName in Web App
ApprovedPaymentA transaction is approvedApproved payment
AuthorizedPaymentA transaction is authorized, capture pendingAuthorized payment
DeclinedPaymentA transaction is declinedDeclined payment
FundedPaymentA transaction is fundedFunded payment
FraudAlertA fraud alert is triggeredFraud alerts
HoldTransactionA transaction is heldHold transaction
HoldBatchA batch is heldHold batch
InvoiceCreatedAn invoice is createdInvoice created
InvoicePaidAny payment is received for an invoiceInvoices paid
InvoiceSentAn invoice is sent to customerInvoices sent
OriginatedPaymentA transaction is originatedOriginated payments
RefundedPaymentA transaction is refundedRefunded payments
ReleasedBatchA held batch is releasedReleased batch
RecoveredTransactionA timed-out transaction is recoveredRecovered transaction
ReleasedTransactionA held transaction is releasedReleased transaction
SettledPaymentA transaction is settled or sent to fundingSettled payments
TransferAdjustedA transfer has been adjusted by Payabli Transfer adjusted
TransferDisabledCreditFundCredit funding failed because the merchant doesn’t have an active credit serviceTransfer credit fund disabled
TransferDisabledDebitFundDebit funding failed because the merchant doesn’t have an active debit serviceTransfer debit fund disabled
TransferErrorFunding execution failedTransfer error
TransferNotAvailableBalanceFunding execution pending because available balance doesn’t cover the transferTransfer not available balance
TransferReadyforRetryA transfer is ready to be retried by PayabliTransfer ready for retry
TransferResolvedA transfer has been resolved by PayabliTransfer resolved
TransferReturnFunding execution experienced a return, which is commonly due to insufficient funds, or problems with the external bank accountTransfer return
TransferSuccessFunding execution was successfulTransfer success
TransferSuspendedMerchant funding suspendedTransfer suspended
VoidedPaymentA payment is voided or canceledVoided payments

Money out events

EventTriggerName in Web App
BillApprovedA bill is approved to be paidBills were approved
BillCanceledA bill is canceledBills were canceled
BillDisApprovedA bill is disapproved to be paidBills were rejected
BillPaidA bill is paidBills paid
BillProcessingA payout is being processed for a billPayment for bills in transit
PayOutCanceledA payout is canceledPayouts were canceled
PayOutFundedA payout is fundedPayout funded
PayOutPaidA payout is paidPayouts were paid
PayOutProcessedA payout is processedPayouts were processed

Boarding events

EventTriggerName in Web App
ActivatedMerchantA new merchant account is activatedPaypoints activated
BoardingApplicationAn application sent to “boarding” statusPaypoints boarded
CreatedApplicationA new boarding application is createdApplications newly created
DeclinedApplicationAn application is declinedApplications declined
HoldingApplicationAn application is put on holdApplication is under review
SubmittedApplicationA boarding application is sent to processingApplications submitted

Other

EventTriggerName in Web App
exportFileErrorThere was an error generating an export fileFile transmission aborted
exportFileSentA generated export file is sentFile sent
importFileErrorAn imported file was rejected because of errorsFile processing aborted by errors
importFileProcessedAn imported file was processedFile processed
importFileReceivedA file is received for import data via Payabli eXchangeFile received
ReceivedAchReturnA returned ACH is receivedACH returns
ReceivedChargeBackA chargeback is receivedCredit card chargebacks
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