Report your order id for a Payment Container order
/webhooks/payment-container/order-createdAfter 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.
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-created" \ -H "X-Signature: string" \ -H "X-Timestamp: string" \ -H "Content-Type: application/json" \ -d '{ "merchant_id": "string", "order_id": "string", "external_order_id": "string", "platform": "woocommerce" }'{ "order_id": "string", "external_order_id": "string", "status": "linked"}Get the sales-tax / VAT rate for a ship-to address POST
Returns the **tax rate** (a fraction, e.g. `0.07` = 7%) for a ship-to address, computed with our own engine - the same combined state + county + city + district rate (statutory VAT outside the US) that the post-payment verifier uses. **How to use it** 1. Send the buyer's `shipping_address` (address only - no items or amounts). 2. We return `tax_rate`. 3. Compute `tax = round(tax_rate × taxable_base)`, where the base is the items subtotal (net of discounts) **+** shipping, only where the destination taxes freight. 4. Display the computed tax to the buyer as its own labeled line item (for example "Tax" or "VAT") in the checkout totals before payment - do not fold it silently into the grand total. The buyer must be able to see the amount they are being charged as tax. 5. Charge the buyer, then send that same tax back on the order in `merchant_supplied_totals.tax_cents`. Because the quote and the post-payment verification run the **same engine**, charging this number means **no tax-shortfall correction** is applied to your payout. A tax-free destination returns `tax_rate: 0` - collect no tax. `override_enabled` tells you whether PeptidesPayment expects to apply this tax for you: `false` means your store is configured to compute its own tax, so leave your own tax in place and ignore `tax_rate`. It is `true` for every other store (including tax-free destinations, where `tax_rate` is `0`).
Report a fulfillment change for a Payment Container order POST
When 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`.