Your project creates (or "fires") an Event object for any significant change in its status. This is particularly important for updates to transactions but events are also fired for other situations.

You can configure your project to send a notification message to a webhook whenever a new event is fired. The message is just an HTTP POST that contains the ID value of the new event. Use this ID to fetch the event and examine the data it contains.
This approach allows a zero-trust infrastructure. If a merchant endpoint and/or API secrets are used by an unauthorized 3rd party, the state of a transaction cannot be changed as merchants don't listen to updates, but request them.

Event JSON


Event types

A Transaction object is returned whenever you authorize a payment or capture an invoice. The payment is often complete at this point but there are cases where the data in the Transaction can change after it is initially created. For example, the customer may request a chargeback, which will reverse the payment if it is successful. Also, if you authorize an invoice to be captured automatically after a delay then you will not receive direct confirmation that the payment was captured correctly. We recommend that you listen for transaction events to handle cases like these.

The full set of transaction events is shown in the table below.

Transaction events

Event typeDescription
transaction.requestedA payment request was made but no payment has been placed yet.
transaction.authorizedThe payment has been authorized but is not available in your balance until you capture it.
transaction.capturedThe payment has been captured and funds have been confirmed.
transaction.failedThe payment has failed.
transaction.voidedThe transaction has been voided and cannot be captured anymore.
transaction.refundedYou issued a refund on the transaction. Use the refunded_amount field and also the refunds objects list to find the amount that was refunded.
transaction.operation.refund.pendingThe refund on the transaction is pending.
transaction.operation.refund.failedThe refund on the transaction failed.
transaction.chargeback.createdA chargeback has been filed by your customer.
transaction.chargeback.wonThe previously filed chargeback was resolved in your favor.
transaction.chargeback.lostThe previously filed chargeback was resolved in your customer's favor.
transaction.chargeback.retrieval-requestThe payment was previously completed but the customer does not recognize it and is asking for information.
transaction.chargeback.fraud-notificationThe payment was previously completed but the bank is notifying you that the customer might request a chargeback.
transaction.operation.three-d-s.pendingThe payment's 3DS check is pending.
transaction.operation.three-d-s.failedThe payment's 3DS check failed.
transaction.operation.three-d-s.successThe payment passed the 3DS check.
transaction.operation.three-d-s-2.pendingThe payment's 3DS2 check is pending.
transaction.operation.three-d-s-2.failedThe payment's 3DS2 check failed.
transaction.operation.three-d-s-2.successThe payment passed the 3DS2 check.
transaction.authorization.incrementedThe payment's authorization was incremented.
transaction.operation.increment-authorization.failedThe payment's incremental authorization failed.
transaction.operation.increment-authorization.pendingThe payment's incremental authorization is pending.

Customer events

These events are fired when a Customers object is created, deleted, or updated.

Event typeDescription
customer.createdA new customer resource was created.
customer.updatedA customer resource was updated.
customer.deletedA customer resource was deleted.

Customer token events

Customer tokens events are fired for creation, deletion, and updates but also when verification succeeds or fails.

Event typeDescription
customer.token.createdA new customer token resource was created.
customer.token.updatedA customer token resource was updated.
customer.token.deletedA customer token resource was deleted.
customer.token.verifiedA customer token was verified successfully.
customer.token.verification.failedA customer token verification failed.
customer.token.verification.requestedA customer token verification has been requested.

Payout and report events

Event typeDescription
payout.createdA new payout is available.
payout.updatedThe existing payout was updated.
report.process-attempt-failedProcessing attempt of report failed. Processing will still be retried.

Order of events

ProcessOut cannot garantee that webhooks that you will receive will be ordered based on the event time.
This means it is possible to receive webhooks in the following order:

  • transaction.captured
  • transaction.authorized

Please ensure that your webhooks implementation takes this into account.

If needed, you can rely on our Transaction endpoint to fetch the latest status of a transaction.