Skip to content

Cart Validation

POST /v1/carts/validate
Authorization: Bearer ck_test_...
Content-Type: application/json

Request:

{
"items": [
{
"id": "pmag-30",
"quantity": 1,
"product": {
"category": "magazine",
"attributes": { "capacity": 30 }
}
}
],
"destination": { "zip": "90210" },
"buyer": {
"age": 21,
"has_ffl": false
}
}

Every item must include a stable id, a product.category, and any rule-relevant product.attributes. quantity defaults to 1 when omitted.

Supported product categories are serialized as snake case:

  • firearm
  • ammunition
  • magazine
  • accessory
  • barrel
  • precursor_part
  • silencer
  • digital_file
  • firearm_manufacturing_machine

Response:

{
"can_fulfill": false,
"order_verdict": "prohibited",
"items": [],
"blocked": [],
"action_required": [],
"request_id": "req_..."
}

order_verdict is one of allowed, conditional, or prohibited. Treat conditional as a hard checkout pause until the returned compliance steps are completed.