Understand global transaction status and maintenance operations
Our platform links every webhook to a specific transaction with property payment.id. The full structure of payment.id is
Both elements of this structure have a different purpose to indicate a transaction’s status:
A unique number referring to your order
This is a fixed identifier that will never change over the course of a transaction life cycle. The latest final maintenance operation (i.e. authorisation/capture/refund) you have performed defines the transaction's current global status of your order.
A maintenance operation (i.e. authorisation/capture/refund) performed on this paymentid.
Every maintenance operation has an individual operationid. Once you request a new transaction, it will receive a first operationid"0" (i.e. an authorisation or direct sales request).
During a transaction's life cycle, every subsequent maintenance operation receives an incremental operationid. It indicates its order in the transaction life cycle (i.e. "1" for a capture after authorisation and "2" for a refund after that capture).
Every operationidhas its own StatusOutput.statusCode reflecting the outcome of the respective maintenance operation (i.e. an auhorisation request results either in StatusOutput.statusCode=5 or 2.
Mind that an update for waiting/uncertain operationidstatuses (i.e. from 91/92 to 9 or 93) will not result in an additional operationid.
Our webhooks refer only to an online/offline event of a specific maintenance operation - and not on the transaction's global status. Have a look at the following example for transaction with paymentid 3136405348 to understand how webhooks work:
|You send an authorisiation request via CreatePayment/CreateHostedCheckout
Our platform sends a webhook for online event payment.created
|You capture this transaction via CapturePayment
Our platform sends a webhook for online event payment.capture_requested
Our platform receives the confirmation that the capture has been successful
Our platform updates the original capture request 3136405348_1 to statusOutput.status=9 and sends a webhook for offline event payment.captured
You refund this transation via RefundPayment
Our platform sends a webhook for online event refund.refund_requested
Our platform receives the confirmation that the refund has been successful
Our platform updates the original capture request 3136405348_2 to statusOutput.status=8 and sends a webhook for offline event payment.refunded