| Field | Notes |
|---|---|
ad.headline required | Up to 200 characters |
ad.body_copy required | Up to 1,000 characters |
ad.platform required | facebook, instagram or linkedin |
ad.product_category required | checking, savings, money_market, cd, ira, mortgage, heloc, auto_loan, personal_loan, business_loan, sba_loan, credit_card, commercial_real_estate, other |
ad.product_name required | The product's own name |
ad.cta_text, ad.disclaimer | Send the disclaimer exactly as it will run |
ad.ad_format | feed (default) or story |
institution.type required | bank or credit_union |
institution.name required | Up to 160 characters |
institution.nmls_id | Needed for mortgage and HELOC ads; 4 to 10 digits |
product_page_text | Recommended. Text of the product's own page, up to 8,000 characters. Lets the check confirm fee and “free” claims instead of flagging them. |
curl -s "$BASE/v1/compliance/check" -H "x-api-key: $KEY" -H "content-type: application/json" -d '{
"ad": {
"headline": "Get Paid Up to 2 Days Early",
"body_copy": "Free Checking can deposit your paycheck up to two days early with direct deposit.",
"cta_text": "Learn More",
"disclaimer": "Member FDIC.",
"platform": "facebook",
"product_category": "checking",
"product_name": "Free Checking"
},
"institution": { "type": "credit_union", "name": "Example Credit Union" },
"product_page_text": "Free Checking: no monthly service fee. Early direct deposit up to 2 days..."
}'
{
"request_id": "…",
"decision": "needs_changes",
"grade": "red",
"score": 75,
"institution_type": "credit_union",
"rule_results": [
{ "rule_code": "T1-007", "rule_name": "NCUA Official Advertising Statement",
"status": "fail", "component": "disclaimer",
"explanation": "…", "fix_instruction": "…" }
],
"checks": {
"copy_quality": { "code": null },
"reg_z_trigger": { "code": null },
"nmls": { "status": "none" },
"disclaimer": { "expected": "Federally Insured by NCUA.", "matches": false, "missing": false, "wrong_insurer": true }
},
"notice": "Review assist only: …"
}
Reading the decision
decision | Meaning | What to do |
|---|---|---|
pass | No rule failed and every check passed | Send it to your reviewer as usual |
needs_changes | At least one rule or check failed | Apply each fix_instruction, then check again |
needs_nmls | Only the NMLS ID is missing | Add institution.nmls_id and the NMLS number to the disclaimer |
checks.disclaimer.expected is the disclaimer ChiselGrowth would use for this product. Different wording is not a failure by itself; missing and wrong_insurer are.
Copy-quality codes
early_pay_claim_without_up_to | “N days early” needs “up to” or “as early as” |
sweeping_claim_without_fact | “Without limits” with no unlimited feature |
profit_wording_for_earnings | Interest or dividends called “profit” |
generic_product_free_claim | “Free” on a generic product without page support |
unsupported_popularity_claim, unsupported_people_claim | Awards, “#1”, “customers love”, staff claims |
| other codes | Generic filler, fee-led or off-product copy: rewrite with a concrete product fact |