Report a fulfillment change for a Payment Container order
/webhooks/payment-container/order-updatedWhen an order's shipping state changes on your platform, call this endpoint with the new status and tracking number. PeptidesPayment records the status and tracking and re-computes payout eligibility: an order becomes eligible once it is fulfilled and has no active dispute.
Authentication. HMAC-SHA256 over the raw request body using your webhook signing secret. Send X-Signature: sha256=<hex> and X-Timestamp: <unix seconds>.
Tracking. A tracking number is required when the status is fulfilled or partially_fulfilled; otherwise the request is rejected with 400.
Idempotency. Posting the same status and tracking number twice returns 200 with status noop.
Header Parameters
HMAC-SHA256 of the raw request body using your shared_secret. Format: sha256=<64-hex>.
Unix epoch seconds at which the body was signed. Reject if skew > 5 minutes.
UUID v4. Optional but recommended for traceability.
Request Body
application/json
Request body
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/webhooks/payment-container/order-updated" \ -H "X-Signature: string" \ -H "X-Timestamp: string" \ -H "Content-Type: application/json" \ -d '{ "merchant_id": "string", "order_id": "string", "status": "fulfilled" }'{ "order_id": "string", "fulfillment_status": "fulfilled", "tracking_number": "string", "payout_eligible": true, "status": "updated"}Report your order id for a Payment Container order POST
After a `payment.container.succeeded` event, create the order on your platform, then call this endpoint with your new order id. PeptidesPayment records it so later events (`payment.container.refunded`, `payment.container.chargeback_*`) echo it back for correlation. **Authentication.** HMAC-SHA256 over the raw request body using your webhook signing secret. Send `X-Signature: sha256=<hex>` and `X-Timestamp: <unix seconds>`. **Idempotency.** Posting the same order id twice returns 200 with status `noop`. Posting a different value for an order that already has one returns 409 and does not overwrite.
payment.container.cancelled Webhook
Fired when a container order is cancelled from the PeptidesPayment dashboard.