Yes, I have used both a static payload and one that I captured from the webhook as it was being sent. You can see it below:
[{"eventId":2584008524,"subscriptionId":2429941,"portalId":143483564,"appId":2484474,"occurredAt":1704708338803,"subscriptionType":"contact.propertyChange","attemptNumber":0,"objectId":1051801,"propertyName":"lifecyclestage","propertyValue":null,"changeSource":"CRM_UI","sourceId":"userId:62129685"},
{"eventId":1997065984,"subscriptionId":2429941,"portalId":143483564,"appId":2484474,"occurredAt":1704708339803,"subscriptionType":"contact.propertyChange","attemptNumber":0,"objectId":1051801,"propertyName":"lifecyclestage","propertyValue":"417423609","changeSource":"CRM_UI","sourceId":"userId:62129685"}]
A payload that uses only one event, on the other hand, validates fine. Here is an example of a payload that works successfully:
[{"eventId":2968941740,"subscriptionId":2429941,"portalId":143483564,"appId":2484474,"occurredAt":1704193868623,"subscriptionType":"contact.propertyChange","attemptNumber":0,"objectId":1051801,"propertyName":"lifecyclestage","propertyValue":"422168280","changeSource":"CRM_UI","sourceId":"userId:62129685"}]
The issue might be with how it encodes the “,” in the first request or if the hashing of the initial signature uses some kind of buffer or formatting on the payload data, but without knowing how the hashing is done server-side, I have no means of figuring it out.
I suspect this might be an undiscovered bug on the Hubspot side.