Skip to content
cresvaDevelopers

WITHDRAWN. Returns 410 Gone.

Withdrawn

This operation is still documented because it still answers, and what it answers is a refusal. An integrator who cannot find it will assume it was never there and try to build against it again.

POST/api/storefront/{brandId}/transactions
No keyCallable anonymously. Rate limited by IP.10 requests a minute

Withdrawn 2026-09-10. It priced orders from the request body rather than from the catalogue: driven against production it accepted a $189 product ordered for $1.00, a $129 product for $0.00, a product that did not exist, a negative price, and a currency the store does not sell in, all returning 201. It answers 410 rather than 401 or 400 because the resource is withdrawn rather than refused: no key and no better formed body will make it work, and an agent that reads a 410 stops retrying. Use a checkout session.

Parameters

brandIdstring · pathrequiredThe storefront's brand id. There is no public endpoint that maps a domain to a brand id; ask the merchant for their storefront URL, the id is in it.

Request

bash
BRAND_ID=cmqmr1f6j0003la04nu93f4k4
curl -X POST "https://cresva.ai/api/storefront/$BRAND_ID/transactions"

Response

No captured response. This operation is not a GET, so calling it would change a merchant's data.

The response schema below is the contract. It comes from the same document the router is checked against, so it is what the endpoint returns even though nobody has printed one here.

Response codes

401The key does not match any active key.
erroranyTwo shapes exist across this API and that is deliberate rather than untidy. Each route kept the error shape it already used, so an existing client's error handling keeps working. See x-cresva-error-shapes.
403The key is valid but belongs to a different brand than the one in the path. Keys are scoped to one brand and do not travel.
erroranyTwo shapes exist across this API and that is deliberate rather than untidy. Each route kept the error shape it already used, so an existing client's error handling keeps working. See x-cresva-error-shapes.
404No such brand.
erroranyTwo shapes exist across this API and that is deliberate rather than untidy. Each route kept the error shape it already used, so an existing client's error handling keeps working. See x-cresva-error-shapes.
410Gone. The body names the reason and points at what still works.
object
429Over the rate limit.
erroranyTwo shapes exist across this API and that is deliberate rather than untidy. Each route kept the error shape it already used, so an existing client's error handling keeps working. See x-cresva-error-shapes.
503The rate limiter could not be reached, so the request was refused rather than served unmetered. Deliberately not a 429: the caller has done nothing wrong and the fault is ours.
erroranyTwo shapes exist across this API and that is deliberate rather than untidy. Each route kept the error shape it already used, so an existing client's error handling keeps working. See x-cresva-error-shapes.

Generated from the storefront OpenAPI document at growthagents 269d7898b, sha256 047fe4d301258100. Nothing on this page was typed by hand.