Push trade and signal events into your own systems, verify the signature, and handle retries correctly.
It must be a public HTTPS URL that answers quickly.
Subscribe only to what you consume. Every event you ignore is latency you pay for.
Shown once, used to verify that a delivery really came from PipSync.
It shows the exact payload and your endpoint's response, which is usually enough to finish the integration.
Each delivery carries an HMAC signature over the raw request body. Verify it against the raw bytes before parsing — re-serialised JSON will not match.
import crypto from "node:crypto";
function verify(rawBody, signature, secret) {
const expected = crypto
.createHmac("sha256", secret)
.update(rawBody)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signature),
);
}Send the raw signal, the timestamp and the account name — that is usually enough to answer on the first reply.