redact-secret · Report
OAuth application secret (sq0csp-, sandbox-sq0csb-)
sq0csp- + 43 or 44, or sandbox-sq0csb- + 43, over [A-Za-z0-9_-]; application ids (sq0idp-, sandbox-sq0idb-) are public.
Beta.14 arrival family square-oauth-application-secret (#583, product redact-secret#1107), contract in benchmarks/lib/beta8/583a.ts from the #1014 handoff square.md. T1 by example under R5 (the 43 or 44 union follows the Polar era-union precedent), conditional on Q8. Shares the square-token detector (finding type square_oauth_application_secret), so it is an arrival family scored by that finding type (scanners/families.mjs arrivalFindingTypes).
Research record
From credential-evidence snapshot-2026.10.06.4 · records at 77ce761 · schema 1.8.0. It describes the research on the format, not what any scanner or the product does, and not a support status.
No research record for this family
snapshot-2026.10.06.4 has no family record for square:oauth-application-secret, so its review state, format revision and format facts are not recorded here.
Not recorded
Format
Provider format research from credential-evidence snapshot-2026.10.06.4 · records at 77ce761 · schema 1.8.0.
Format not recorded
No format contract is recorded for this family in the pinned release.
Not recordedBenchmark dossier notes
From the provider dossier, as written. The evidence level above says how well the format is backed; a fact the dossier does not record is not shown.
- Shape
sq0csp-+ 43 or 44, orsandbox-sq0csb-+ 43, over[A-Za-z0-9_-].- Basis
- the walkthrough shows 43 (production and sandbox), the ObtainToken reference and its generated SDK fixture show 44 (R5); the union follows the Polar era-union precedent. gitleaks 8.30.1 has no
sq0csp-rule; trufflehogsquareappreads 40 to 50 and also the publicsq0i??application ids. - Issuance
- same check as above; it settles 43 vs 44 and whether the sandbox secret has one width.
- Contract in core
- the same detector, finding type
square_oauth_application_secret.
In this benchmark
Fixture rows on the current run. Counts are for redact-secret in published · redact-secret 0.1.0-beta.14 mode.
No fixtures in this family yet
Nothing in the corpus targets it, so nothing is measured and no coverage is claimed.
Not measured
Looks like it, but isn't
Values the dossier records as resembling this credential without being one.
- Collisions
sq0idp-,sq0ids-,sq0idb-andsandbox-sq0idb-application ids are public by design (Q5);sq0cgb-authorization codes are short-lived.
Scanner rules for this family
Mapped by hand (reviewed 2026-09-30) from each scanner's pinned rule file, never from what a scanner found on the fixtures.
| Scanner | Rule | What the rule matches |
|---|---|---|
| flare-redact · rules 1.6.1 | square_token | sq0 + three letters + - + 22-43, or EAAA + 60 [A-Za-z0-9_-]; the sq0i?? alternatives are public application ids |
| trufflehog · rules 3.97.4 | squareapp | (sandbox-)sq0c?? + 40-50 [0-9A-Za-z_-]; the same detector also reads sq0i?? application ids (public identifiers) |
No rule maps to this family in gitleaks, openredaction.
No fixtures in this family yet
Nothing in the corpus targets it, so nothing is measured and no coverage is claimed.
Not measured
Sources
Researched 2026-09-30.
Documentation and code
- developer.squareup.com/docs/oauth-api/walkthrough
- developer.squareup.com/reference/square/o-auth-api/obtain-token
- github.com/redact-secret/redact-secret/blob/fa955d28eed59c70a9c4380ed130d1b82d439cd9/docs/audits/evidence/1014/square.md
Research log
- redact-secret/redact-secret#1014Research issue
- redact-secret/redact-secret#1107Research issue
- redact-secret/redact-secret-benchmarks#583Research issue
- redact-secret/redact-secret-benchmarks#584Research issue
- Final evidence, pinned to a commit/redact-secret/redact-secret/blob/fa955d28eed59c70a9c4380ed130d1b82d439cd9/docs/audits/evidence/1014/square.md