Skip to main content
Qscore fraud and identity is a product separate from the credit report. It returns a fraud-risk score: a higher value means higher fraud risk. The report combines the subject’s recent query velocity, verified-platform signals, contact consistency, shared device/IP evidence and available bureau coverage. It is designed for fraud prevention, identity verification and onboarding decisions; it is not a credit score.
This product is gated by the account’s risk service flag and charged with the fixed-only risk_fraud_score service. A failed generation is refunded automatically. The PDF and detailed signals are never sent by email.

Flow

Create a report

POST /v1/qscore/fraud/reports is authenticated and requires a verified account. The idempotency key can be in the JSON body or in the Idempotency-Key header.
Create a fraud report
200 OK
A replay with the same account and key returns the original report with "idempotency_hit": true; it never charges or generates a second report.

Read the report

List

GET /v1/qscore/fraud/reports returns the reports visible to the caller. from and to are required date filters (YYYY-MM-DD, organization timezone, inclusive). status is optional. Pagination defaults to 50 and is capped at 200.
List fraud reports
200 OK

Detail

GET /v1/qscore/fraud/reports/{report_id} returns the same report metadata, reason codes and verification/PDF links when the report is ready. An ID that is not a UUID, does not belong to the caller’s scope or does not exist returns 404 not_found.

PDF

GET /v1/qscore/fraud/reports/{report_id}/pdf downloads the branded PDF with Content-Type: application/pdf and Content-Disposition: attachment; filename="qxrisk_fraud_<report_id>.pdf". The download is authenticated and is available only when the report is ready; otherwise the endpoint returns 404 not_found.

Score and statuses

The model is qscore-fraud-v1, ranges from 1 to 999 and uses the following fraud-risk bands: The implemented reason codes are NEW_SUBJECT, VELOCITY, CONTACT_MISMATCH, SHARED_DEVICE_IP and THIN_FILE. A missing internal age signal does not itself create NEW_SUBJECT; a thin file is reported when there is neither usable internal history nor bureau coverage.

Webhook and email

When the report completes, the account receives one signed risk_fraud_score_ready webhook:
risk_fraud_score_ready
The email is best-effort and branded for the organization. It contains only a short report reference, the subject document and a link to the account; it does not include the PDF, score, band or fraud signals.

Public authenticity verification

GET /verify/qscore-fraud/{code} is public and rate-limited. A valid code returns only authenticity, current status, issue date and issuer:
200 OK
An invalid or tampered code returns 404 with valid: false; the public endpoint never reveals the document, score or signals.

Errors

FAQ

No. This is a separate fraud and identity risk score. Higher values mean higher observed fraud risk; it must not be interpreted as creditworthiness.
No. The product always creates the full report, PDF and verification code.
No. Reuse the same idempotency key to replay the original result. Use a new key only when you intentionally start a new assessment.
No. It confirms authenticity without exposing the document, score or signals.
Last modified on September 6, 2026