Soft-pull pre-screening gateway for Anchored Finance. Routes applicants via Equifax/OffersIQ credit data — returns full ECM attribute profiles for downstream use.
Hard pull: $4.35 | Soft pull: $2.00 | At ~20K apps/month, sub-650 routing saves $10K+/month
All 237 Equifax OneView attributes are active. The gateway passes the complete ECM profile through in every response — downstream systems use whichever attributes they need.
credit_score Vantage 3.0total_tradelines Open + closedutilization_pct Credit usagehigh_credit_line Highest linetotal_monthly_payment Scheduledauto_credit_line Auto-specificauto_utilization_pct Auto usagemortgage_balance Mortgage debtbankruptcy_count + agecollections_count + non-medicaltax_lien_count Public recordsrepossession_count Reposforeclosure_count Foreclosureschargeoff_count + total amountdelinquent_30/60/90 Late paysinquiry_count Hard inquiriesThe gateway's routing decision uses the credit score only. All ECM attributes are included in the API response for downstream lender qualification, DTI calculations, or any other criteria your systems need.
All API endpoints require a gateway secret via header:
X-Gateway-Secret: your-gateway-secret
# or
Authorization: Bearer your-gateway-secret
Run a single pre-screen. Accepts Automatic's native application format. Returns routing decision + full ECM attributes.
| Field | Location | Type | Description |
|---|---|---|---|
firstName | applicantInfo | string | REQUIRED |
lastName | applicantInfo | string | REQUIRED |
socialSecurityNumber | applicantInfo | string | REQUIRED |
dob | applicantInfo | string | Recommended (YYYY-MM-DD) |
applicantResidence | applicantInfo | object | Recommended (streetAddress, city, state, zipCode) |
{
"partnerAppId": "CRIF-20250705-001",
"applicantInfo": {
"firstName": "Jane",
"lastName": "Smith",
"socialSecurityNumber": "123456789",
"dob": "1985-03-15",
"applicantResidence": {
"streetAddress": "123 Main St",
"city": "Miami",
"state": "FL",
"zipCode": "33101"
}
}
}
{
"decision": "PROCEED",
"reason": "Score 712 meets threshold (>= 650) — proceed with hard pull",
"score": 712,
"threshold": 650,
"ecmAttributes": {
"credit_score": 712,
"total_tradelines": 14,
"open_tradelines": 8,
"utilization_pct": 34,
"high_credit_line": 25000,
"total_monthly_payment": 1850,
"auto_credit_line": 18000,
"auto_utilization_pct": 45,
"bankruptcy_count": 0,
"collections_count": 0,
"repossession_count": 0,
"foreclosure_count": 0,
"chargeoff_count": 0,
"delinquent_30_count": 1,
"delinquent_60_count": 0,
"delinquent_90_count": 0
},
"processingMs": 1240,
"applicationId": "CRIF-20250705-001",
"timestamp": "2025-07-05T23:00:00.000Z"
}
{
"decision": "ROUTE",
"reason": "Score 580 below threshold (< 650) — route to Automatic front door",
"score": 580,
"threshold": 650,
"ecmAttributes": {
"credit_score": 580,
"total_tradelines": 6,
"open_tradelines": 3,
"utilization_pct": 78,
"high_credit_line": 5000,
"total_monthly_payment": 420,
"auto_credit_line": 0,
"bankruptcy_count": 1,
"bankruptcy_age_months": 36,
"collections_count": 3,
"collections_non_medical": 2,
"repossession_count": 0,
"chargeoff_count": 2,
"chargeoff_total_amount": 4200
},
"processingMs": 1180,
"applicationId": "CRIF-20250705-002",
"timestamp": "2025-07-05T23:01:00.000Z"
}
Process up to 50 applications in a single request. Same format as single prescreen, wrapped in an applications array.
{
"applications": [
{ "partnerAppId": "CRIF-001", "applicantInfo": { ... } },
{ "partnerAppId": "CRIF-002", "applicantInfo": { ... } }
]
}
Look up a previous pre-screen result by application ID.
Health check — no authentication required.
{
"status": "ok",
"version": "3.4.0",
"offersiq_credentials": "configured",
"ecm_coverage": "full (ECM22+ unlocked)",
"services_ready": true
}
| Condition | Decision | Action |
|---|---|---|
| Score ≥ 650 | PROCEED | AF proceeds with hard pull — applicant is worth the $4.35 |
| Score < 650 | ROUTE | Route to Automatic front door — save the hard pull cost |
| No score available | ROUTE | Unable to score — conservative routing to Automatic |
The 650 threshold is configurable via SCORE_THRESHOLD environment variable. ECM attributes are always returned regardless of the routing decision — downstream systems apply their own qualification criteria.
| Code | Error | Cause |
|---|---|---|
| 400 | Missing required fields | firstName, lastName, or SSN not provided |
| 401 | Unauthorized | Missing or invalid gateway secret |
| 502 | OffersIQ authentication failed | Token refresh/login issue |
| 502 | OffersIQ pre-screen failed | Equifax service error |
| 500 | Internal gateway error | Unexpected server error |
| Step | Action | Details |
|---|---|---|
| 1 | Get gateway credentials | Receive X-Gateway-Secret from Automatic team |
| 2 | Map application fields | Use existing Automatic format — no schema changes needed |
| 3 | Call POST /api/prescreen | Send each application as it arrives |
| 4 | Handle PROCEED | Continue normal AF hard-pull flow |
| 5 | Handle ROUTE | Forward to Automatic front door (details provided separately) |
| 6 | Use ecmAttributes | Full credit profile available for downstream lender matching |