Payment Status Update Webhook

This webhook is called by our payment gateway to inform you of payment status changes, prior to our payments frontend redirecting the customer back to the given return url, as specified in the initiate-payment-transaction request body. The name of this endpoint should correspond to the name for the payment webhook, that you specified in your Merchant Portal integration Note, We will pass through a super-signature header in the callback request to enable you to verify that the request originated from Super, as opposed to a rogue third party. The signature is generated using a combination of the event payload, a timestamp and your unique webhook secret found in your Merchant Portal integration. The signature, contained in the super-signature header consists of two parts. A timestamp prefixed by t= and the signature prefixed by v1= e.g. super-signature: t:1669219987926,v1:bc2719322a26335c486df9dffeb0c555c758b2a7470de6f62421cfb8437e8b5b Verifying a Signature

  1. Separate the timestamp and signature components by splitting the header on the , character.
  2. Separate the timestamp and header components into their key value pairs by splitting on the : character.
  3. Create a message string by concatenating the timestamp, retrieved in step 2, and the request body.
  4. Generate an HMAC signature using SHA256 as the hash function, your webhook secret as the key and the message string constructed in step 3 as the message.
Payload

This webhook is called by our payment gateway to inform you of a payment status changes, prior to our payments frontend redirecting the customer back to the given return URL, as specified in the initiate-payment-transaction request body.

const
enum
required

This will be set to: PaymentStatus

Allowed:
string
required

A unique ID for the payment transaction.

string
required

An 18 character payment transaction reference allocated by us, used/visible on the associated bank transaction.

string
enum
required

The payment status of the given payment transaction, specified by the super-transaction_id field above. The payment status can be one of:

  • PaymentSuccess: The payment transaction was successful, money has moved from the customer to your holding account.
  • PaymentCancelled: The payment transaction was cancelled by the customer, in their banking app.
  • PaymentFailed: The payment transaction failed due to a technical error, either on our side or with the customer's bank
  • PaymentDelayed: The payment transaction was not resolved by the bank within 15 seconds (<2% of transactions). Open banking can take up to 4 hours to resolve. The customer has the funds, but this is usually due to additional fraud checks within the banking system.
  • PaymentAbandoned: The payment transaction was abandoned by the customer. They closed the browser or just left the page open without explicitly clicking cancel.
Allowed:
integer
required

The payment transaction amount in minor units.

string

Your unique reference for the payment transaction e.g. your orderId

Response
200

Return a 200 status to indicate that the data was received successfully, any other response will be deemed a failure and retried

LoadingLoading…