> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lendflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Spinwheel Personal Credit

## Spinwheel Personal Credit

Spinwheel Personal Credit connects a preverified owner and retrieves credit-profile and liability data. The registered Workflow Builder block is **Personal Credit > Spinwheel Personal Credit**, its block ID is `spinwheel_personal_credit`, and it supports the **Individual** entity type.

| Service | Service ID | Numeric provider ID |
| - | - | - |
| Spinwheel | `spinwheel` | `64` |

## Requirements

| Application field | Requirement | Notes |
| - | - | - |
| Primary-owner telephone | Required | Use a valid phone number. |
| Primary-owner first and last name | Required | Used to match the owner. |
| Date of birth | Required | Use `YYYY-MM-DD`. |
| SSN | Required | Use a valid SSN. |
| Personal address line 1, city, state, and ZIP | Required | Use a complete, valid personal address. |
| Signed consent | Required | Lendflow uses the latest signed consent document with a recorded consent date. For an originated application, it can fall back to the origin owner's latest signed application document. |

## Inquiry semantics

Spinwheel's returned credit profile can contain inquiries whose provider field `purposeType` is `HARD`, but that describes an inquiry already present in the consumer report. It does not establish that running Spinwheel is itself a hard pull. The Lendflow request has no hard/soft inquiry option.

## API flow

1. Call [Enrich Business Credit Application](/api-reference/workflow-management/enrich-business-credit-application) for the application.
2. Set `provider` to `spinwheel`.
3. Omit `options`; Spinwheel has no run-time service options.
4. Confirm `data.onqueue: true`.
5. Poll `GET /api/applications/{application_id}/commercial_data` through [Get Commercial Data](/api-reference/workflow-management/get-commercial-data) with `services[]=spinwheel`.

```json theme={"system"}
{
  "provider": "spinwheel"
}
```

Lendflow executes three provider steps: connect the preverified phone-number identity, recover the existing Spinwheel user when the provider says `User already connected`, and retrieve liability data. Commercial data uses `data.commercial_data.spinwheel.data` for the combined response, `data.statuses.spinwheel` for status, `data.dates.spinwheel` for the latest date, and `data.request_data.spinwheel` for the sanitized stored request.

## Data Orchestration availability

Spinwheel is **not** registered in the current **Builders > Data Orchestration > Personal Credit** service catalog. Run it through the **Spinwheel Personal Credit** Workflow Builder block or the enrichment API. Do not create a Data Orchestration condition that assumes provider ID `64` is available there.

## What the service returns

| Response area | Meaning |
| - | - |
| `userId` | Spinwheel user identifier used for the liability request. |
| `liabilityData.status` | Provider status and informational messages. |
| `liabilityData.data.creditCardSummary` | Aggregate card account, balance, limit, and utilization data. |
| Loan summary objects | Aggregate auto, home, personal, student, and miscellaneous liabilities. |
| `creditReports[].profile` | Inquiry, score, factor, bankruptcy, and credit-attribute data. |
| Liability arrays | Account-level card and loan balances, payments, terms, creditor, and capability data. |
| `summary` | Aggregate account counts, balances, and account ages. |

```json theme={"system"}
{
  "userId": "usr_example",
  "liabilityData": {
    "status": {"code": 200, "desc": "OK"},
    "data": {
      "creditCardSummary": {
        "totalAccounts": 3,
        "totalBalance": 4500,
        "totalCreditLimit": 15000,
        "averageUtilization": 30
      },
      "creditReports": [{
        "profile": {
          "creditScoreDetails": [{
            "creditScore": 750,
            "modelName": "EquifaxVantageScore3.0",
            "sourceBureau": "Equifax",
            "factors": [{"code": "01", "description": "Amount owed on accounts is too high"}]
          }]
        }
      }]
    }
  }
}
```

Summary values are provider aggregates. Empty liability arrays mean no records were returned in that category; missing or `null` values remain unknown. The stored response is obfuscated before persistence, so sensitive values can differ from the live provider response.

## Errors and statuses

| Condition | Meaning |
| - | - |
| `No consent document found...` | No eligible signed document with consent data exists. |
| `No valid consent with checked_date found...` | Consent exists but has no checked timestamp. |
| `Spinwheel connect pre-verified failed (HTTP ...)` | Identity connection failed; inspect the provider status safely. |
| `User already connected` | Lendflow recovers the existing user ID and continues; this is handled as a valid rerun path. |
| `No user ID returned from connection` | Spinwheel did not provide or recover a user ID. |
| `Spinwheel get liability data failed (HTTP ...)` | The liability retrieval failed. |
| `data.onqueue: true` | The enrichment job was queued, not completed. |

## FAQ

<AccordionGroup>
  <Accordion title="Does Spinwheel require consumer consent?">
    Yes. The service requires a signed consent source with a checked date, or the supported signed-origin-application fallback.
  </Accordion>

  <Accordion title="What happens when the user is already connected?">
    Lendflow looks up the Spinwheel user by the application ID and continues with the recovered user ID.
  </Accordion>

  <Accordion title="Is Spinwheel available in Data Orchestration?">
    No. It has a Workflow Builder Personal Credit block and enrichment service, but it is absent from the current Data Orchestration Personal Credit catalog.
  </Accordion>

  <Accordion title="Does purposeType HARD mean this service made a hard pull?">
    No. That field describes an inquiry contained in the returned credit profile. The Lendflow Spinwheel request itself has no hard/soft option.
  </Accordion>
</AccordionGroup>
