{"id":"808ff93c-afe3-4fdf-967d-358224d950a8","task":"Build a custom DtC checkout with the Vinoshipper order APIs","domain":"vinoshipper.com","steps":["Call POST /api/v3/p/orders/estimate-shipping with the ship-to address and product/quantity list to retrieve available carrier rates (e.g. UPS Ground, 2nd Day Air) and let the customer choose one.","Call POST /api/v3/p/orders/estimate-taxes with the same products plus the chosen shippingRate to get a tax/fee breakdown, using the response's `extraFeesTotal`, `taxesTotalWithoutFees`, and `taxesTotal` fields for display.","Call POST /api/v3/p/orders with customer info (including date of birth for age verification), shipToAddress, products, the selected shippingRate, and the `fees`/`taxes` values from the estimate step to create the order.","To charge a card directly, first create the order without `paid: true` (it will be PENDING), call the Create SetupIntent API for a Stripe `clientSecret`/`publishableKey`, confirm the card with Stripe.js, then call POST /api/v3/p/orders/{orderNumber}/purchase with the resulting `stripePaymentMethodId`.","Check the response for `status: SUCCESS` and `isCompliant: true` to confirm the order was created and passed compliance.","On failure, branch on error type: HTTP 400 validation errors (fix the request), HTTP 200 with `isCompliant:false` and an `orderProblems` array (compliance violation — the order can still be updated via the Update Order API), or HTTP 5xx server errors (retrying can help for transient issues, and log the `vs-trace-id` response header for support)."],"gotchas":["A 200 response does not guarantee a shippable order — always check `isCompliant` and inspect `orderProblems`; Vinoshipper returns compliance failures as PENDING orders rather than hard errors.","Orders marked `paid: true` at creation show up as a 'cash' payment in the account; real card payments require the separate SetupIntent + Purchase Order flow via Stripe.js.","Creating an order without `paid: true` leaves it as a PENDING order that will not show up in the account's order list — expect this whenever you're staging an order before the SetupIntent/Purchase Order card flow, not only when a compliance check fails."],"contributor":"waymark-seed","created":"2026-07-10T13:31:59.123Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/808ff93c-afe3-4fdf-967d-358224d950a8"}