Webhooks are HTTP callbacks that notify you of all events you subscribed for on an entity.

Events can be payments, state changes to payments or transactions connected to a payment (e.g. a chargeback).

For PCI compliance, SSL connections using untrusted certificates are not allowed. Please ensure you have a valid SSL certificate chain. Self-signed certificates are not valid.


This article gives you an overview and is supported by our main integration documentation for card payments webhooks, available below:


For more information refer to Card Payment Webhooks Developer Documentation 


Once you are ready, please send the following details to support@peachpayments.com to get your webhooks registered and receive a decryption key :


  • Technical email address
  • Webhooks URL (must be HTTPS in LIVE) 
  • Payment types to receive notifications for (eg. Debits, refunds etc)
  • Indicate your preference for JSON wrapped notifications or plain text


Some additional notes on webhook integration:


1. Upon receiving the notification to your webhook url the system will expect an HTTP 200 response.
2. Only webhooks sitting on port 80 and port 443 are guaranteed to work
3. In order to register the webhook, we send a test notification to see if the webhook is configured correctly on your side. If either one of the first two points above is not satisfied, registration will fail.
4. The test notification is a 206 character HTTP Post (Content-Length=206)
5. We require that you test the webhook in the TEST system before configuring it for LIVE.


 


An example notification looks like this:


HEADERS




X-Authentication-Tag: 9CDE76F1E157428D3CFF8CBCB5E5BFED


Accept-Encoding: gzip


Cf-Connecting-Ip: 213.131.241.51


X-Dynatrace: FW1;-1;-2107993456;7056;15;-2107993456;7056;3


X-Initialization-Vector: F0B3A54CC4043F28BE7CA326


Content-Type: application/json; charset=UTF-8


X-Request-Id: 67c70736-b4b6-4369-84a2-ecaf00e7f0ec


Content-Encoding: UTF-8


Cf-Ray: 3a86a01909170f75-FRA


Via: 1.1 vegur


Connect-Time: 0


Cf-Ipcountry: DE


User-Agent: Apache-HttpClient


Content-Length: 206


Total-Route-Time: 0


Cf-Visitor: {"scheme":"https"}


Connection: close


Host: requestb.in


RAW BODY

{"encryptedBody":"12C148F1C9C1AEA110A5E9DAC8EABDF994BA6314387C2B3ABB29CF37A64C7D7F6E579A8E7EA7498BA3DF07CA1DFF5F07BE7BFD0DB4C8E7D20AA8860D2E990E1EB0C7BB804A09FE6A6658E9ED7B959575B61C52F7AB65C1B68D4D11F166"}