DOCS

How it works

How it works

The behavior behind Clarify questionnaires that's useful when you build your own UI or read responses.

Branching 

Questions can depend on earlier answers, so a shipper only sees what's relevant. You don't have to evaluate that logic yourself: on a session line, visibleQuestions is the ready-to-render list, already resolved against the current answers.

If you'd rather render everything client-side, the line's questions field returns the full set with each question's displayCondition, so you can show and hide questions locally as answers change.

Answer provenance 

Every answer records where it came from:

  • INFERRED - pre-filled by Clarify from your item data. Carries a confidence score from 0 to 1.
  • MANUAL - entered or corrected by a person.
  • SUPPLIED - a fact you sent in the request (such as intended use). There's nothing to confirm, so it isn't shown as a question.

Correcting an inferred answer replaces it with a MANUAL one. A finalized response keeps the full mix, so there's always a record of what was pre-filled versus what a person changed.

Use confidence to decide how much review an answer needs — surface low-confidence answers for a person to confirm, and fast-path high-confidence ones.

Dynamic options 

Most questions list their choices inline in options. Some depend on the item and on earlier answers — these set optionsSource and leave options empty.

For those, a session line includes a dependentOptions table covering every reachable combination for the item. Find the entry whose parentValues match the current answers, then show its options — no extra API calls.

{
  "questionCode": "fda_product_code",
  "dependsOn": ["intended_use"],
  "entries": [
    {
      "parentValues": [{ "questionCode": "intended_use", "value": "cosmetic" }],
      "options": [
        { "value": "53", "label": "Cosmetics" },
        { "value": "53A", "label": "Skin care preparations" }
      ]
    }
  ]
}

Intended use 

Pass intendedUse on each item to guide inference. When the product alone isn't enough to determine it, Clarify uses the value you declared.

ValueFor
PERSONALPersonal consumption, gifts, or household use (not resale).
CONSUMERGeneral consumer products sold through retail channels.
COMMERCIALBusiness, manufacturing, or industrial purposes.
RESEARCHLaboratory, testing, scientific study, or clinical trials.

Storefront and consumer-checkout flows should send CONSUMER.

Targets and containers 

Target is what a set of answers describes:

  • CATALOG_ITEM - reusable product master data. Answer once and reuse it across shipments.
  • ITEM - a single shipment's item. When answering for an ITEM, pass its catalogItemId so a reusable catalog-level answer set can satisfy the program.

Container is the grouping the answers are collected under — DECLARATION, LANDED_COST, CONSIGNMENT, or CONSOLIDATION. Use containerComplianceReadiness to check a whole container in one call before you file.

Book a demo

Was this page helpful?