Transaction Update
This endpoint can be implemented by the partner to receive real-time transaction status updates from Payward.
When a Ramp transaction is created or changes state, Payward sends a POST request to the partner’s configured webhook URL with transaction details and status information.
Security
All webhook requests include an X-Signature header containing an HMAC-SHA256 signature of the request body. Partners should verify this signature to ensure integrity of the request.
Contact your Payward integration point of contact to securely exchange the HMAC secret key for signature verification.
Signature Verification
- Extract the
X-Signatureheader value - Compute HMAC-SHA256 of the raw request body using your webhook secret
- Compare the computed signature with the
X-Signatureheader value (hex-encoded)
import crypto from 'crypto';
// This function will return true/false if the signature matches
const verifySignature = (signature: string, secret: string, body: string) => {
const hash = crypto.createHmac('sha256', secret).update(body).digest('hex');
return (signature === hash);
};
Retry Behavior
Payward will automatically retry failed webhook deliveries using exponential backoff. Partners should respond with HTTP 2xx status to acknowledge receipt. Non-2xx responses will trigger retries.
Status Types
The status field provides a simplified transaction state:
new- Transaction has been initiatedpaid- Payment has been receivedpending- Transaction is being processedcompleted- Transaction successfully completedfailed- Transaction failedcanceled- Transaction was canceled
Headers
HMAC-SHA256 signature of the request body (hex-encoded). Use this to verify the webhook authenticity.
"35d050c7eb06bf050fd676db4e6c79f5e90abef9b2ae8aa2dac23302998db5cf"
application/json Body
Webhook request sent by Payward when a Ramp transaction status changes.
Transaction status:
new- Transaction has been initiatedpaid- Payment has been receivedpending- Transaction is being processedcompleted- Transaction successfully completedfailed- Transaction failedcanceled- Transaction was canceled
new, paid, pending, completed, failed, canceled "completed"
Transaction payload containing detailed information about the Ramp transaction.
Object containing internal status information for more granular transaction tracking.
Timestamp when this webhook request was created (ISO-8601 format). Use this for replay attack detection.
"2025-11-07T14:35:57.391209043Z"
Response
Webhook received and processed successfully. Return any 2xx status code to acknowledge receipt.