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

# FAQ & Best Practices

> Frequently asked questions and recommended integration patterns

## Best practices

<CardGroup cols={2}>
  <Card title="Store IDs" icon="database">
    Save the `consumer_id` and `tradeline_id` after creation. You'll use them for all subsequent calls.
  </Card>

  <Card title="Report promptly" icon="clock">
    Submit payments as soon as they're processed. Late reporting can affect the consumer's credit profile.
  </Card>

  <Card title="Use external IDs" icon="link">
    Set `external_id` (consumers), `external_account_id` (tradelines), and `external_payment_id` (payments) to correlate with your system.
  </Card>

  <Card title="Use sandbox first" icon="flask">
    Develop and test with `sk_test_*` keys. Switch to `sk_live_*` only when ready for production.
  </Card>
</CardGroup>

## FAQ

<AccordionGroup>
  <Accordion title="When does data actually reach the credit bureau?">
    Depends on your partner configuration. Monthly partners are batched on the 1st of each month. On-demand partners can trigger submissions immediately via `POST /submit`. Bureau processing typically takes 1-3 business days.
  </Accordion>

  <Accordion title="Can I update a consumer's SSN?">
    Yes. Send the new `ssn` in a `PATCH /consumers/:id` request. It will be re-encrypted at rest.
  </Accordion>

  <Accordion title="What happens when I delete a consumer?">
    It's a soft delete — the record is preserved but hidden from the API. All related tradelines are deactivated. Data is no longer reported to bureaus.
  </Accordion>

  <Accordion title="Can I re-open a closed tradeline?">
    No. Once a tradeline is closed (`DELETE /tradelines/:id`), it cannot be re-opened. Create a new tradeline instead.
  </Accordion>

  <Accordion title="How is payment_history computed?">
    It's a 24-character string representing the last 24 months, newest first. Each character is a Metro 2 payment history code (`0`=current, `1`=30 days late, `2`=60 days, etc.). The API auto-builds this from your payment records.
  </Accordion>

  <Accordion title="What if I submit a duplicate payment for the same period?">
    You'll receive a `409 CONFLICT` error. Each `(tradeline_id, period_start)` combination must be unique.
  </Accordion>

  <Accordion title="Do sandbox requests count against rate limits?">
    No. Sandbox and production have separate rate limits.
  </Accordion>
</AccordionGroup>
