Skip to main content

Documentation Index

Fetch the complete documentation index at: https://dev-docs.multihopper.com/llms.txt

Use this file to discover all available pages before exploring further.

Signature verification

Webhook payloads are signed with HMAC-SHA256 using your endpoint secret. Always verify the signature before processing a payload.
const crypto = require('crypto');

function verifyWebhook(payload, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

// In your handler:
const signature = req.headers['x-multihopper-signature'];
const isValid = verifyWebhook(req.body, signature, whsec_secret);

Event types

EventDescription
transfer.quote_createdA transfer has been created and quoted
transfer.deposit_confirmedFunding transactions have been confirmed
transfer.processingTransfer is actively being processed
transfer.hop_completeAn intermediate hop has completed
transfer.completedTransfer has arrived at the recipient
transfer.failedTransfer failed
transfer.expiredTransfer expired before funding was completed
transfer.refundedTransfer was refunded
payout.completedAn integrator reward claim has settled

Retry schedule

If your endpoint fails to return a 2xx response, the event is retried on the following schedule:
AttemptDelayCumulative
1Immediate0s
230 seconds30s
35 minutes5m 30s
430 minutes35m 30s
52 hours2h 35m
After 5 failed attempts, the delivery is marked as permanently failed.