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

# Collector Onboarding

> How collectors sign up and get verified

# Collector Onboarding

This guide covers the collector signup and KYC verification process.

## Overview

Collector onboarding is more involved than distributor signup because collectors access sensitive documents. The process includes:

1. **Sign Up** - Basic account creation
2. **KYC Verification** - Business verification
3. **Key Declaration** - Declare which lock types you have access to
4. **Intent Declaration** - Specify what you intend to collect
5. **Manual Review** - Docyard admin reviews your application
6. **Dock Setup** - Create your retrieval endpoint

## Step 1: Sign Up

Create your collector account:

```bash theme={null}
curl -X POST https://api.docyard.io/v1/auth/signup/collector \
  -H "Content-Type: application/json" \
  -d '{
    "organization_name": "FirstCity Bank",
    "business_email": "operations@firstcitybank.com",
    "industry": "mortgage_lending",
    "website": "https://firstcitybank.com",
    "password": "your-secure-password"
  }'
```

**Response:**

```json theme={null}
{
  "collector_id": "coll-xyz789",
  "status": "pending_kyc",
  "message": "Please complete KYC verification"
}
```

## Step 2: Submit KYC Documents

Submit verification documents:

```bash theme={null}
curl -X POST https://api.docyard.io/v1/collectors/coll-xyz789/kyc \
  -H "Content-Type: application/json" \
  -d '{
    "business_license": "<base64-encoded-pdf>",
    "tax_id": "98-7654321",
    "nmls_id": "123456",
    "proof_of_address": "<base64-encoded-pdf>",
    "additional_documents": [
      "<base64-encoded-pdf>"
    ]
  }'
```

**Response:**

```json theme={null}
{
  "kyc_id": "kyc-abc123",
  "status": "under_review",
  "message": "Documents submitted. Manual review in progress."
}
```

### Required Documents by Industry

**Mortgage Lenders:**

* Business license
* NMLS ID
* Tax ID / EIN
* Proof of address

**Banks:**

* Bank charter / license
* Tax ID / EIN
* Proof of address

**Title Companies:**

* Title insurance license
* State registration
* Tax ID / EIN
* Proof of address

## Step 3: Declare Your Keys

Specify which lock types you have legitimate access to:

```bash theme={null}
curl -X POST https://api.docyard.io/v1/collectors/coll-xyz789/declare-keys \
  -H "Content-Type: application/json" \
  -d '{
    "declared_locks": [
      "policy_number",
      "loan_number",
      "mortgagee_name",
      "effective_date"
    ],
    "declaration_notes": "We receive policy numbers directly from insurance carriers via nightly data feeds. Loan numbers are assigned by our LOS system. Mortgagee names are derived from our loan portfolio."
  }'
```

**Response:**

```json theme={null}
{
  "status": "pending_approval",
  "declared_locks": [
    "policy_number",
    "loan_number",
    "mortgagee_name",
    "effective_date"
  ]
}
```

### Common Lock Types by Industry

**Insurance:**

* `policy_number`
* `effective_date`
* `expiration_date`
* `carrier_name`
* `agent_code`

**Mortgage:**

* `loan_number`
* `mortgagee_name`
* `borrower_name`
* `property_address`

**Real Estate:**

* `parcel_id`
* `recording_date`
* `grantee`
* `grantor`

## Step 4: Declare Your Intent

Specify what you intend to collect:

```bash theme={null}
curl -X POST https://api.docyard.io/v1/collectors/coll-xyz789/intent \
  -H "Content-Type: application/json" \
  -d '{
    "intended_artifacts": [
      "Insurance Declaration Pages",
      "Loan Agreements",
      "Closing Documents"
    ],
    "use_case": "Mortgage lending due diligence, loan servicing, and loss mitigation",
    "expected_volume": "500-1000 documents per month"
  }'
```

**Response:**

```json theme={null}
{
  "status": "pending_review",
  "message": "Application complete. Awaiting manual review."
}
```

## Step 5: Wait for Manual Review

KYC is manually reviewed by Docyard admins. This typically takes 1-3 business days.

### What Admins Review

1. **Business Legitimacy**
   * Is the business properly licensed?
   * Are credentials valid?
   * Does the business address check out?

2. **Key Declarations**
   * Do the declared lock types match their business?
   * Are the declarations realistic?

3. **Intent Appropriateness**
   * Does the use case make sense?
   * Are they requesting access to appropriate document types?

### Possible Outcomes

**Approved:**

```json theme={null}
{
  "status": "approved",
  "message": "Application approved. Please set up your dock."
}
```

**Rejected:**

```json theme={null}
{
  "status": "rejected",
  "message": "Application rejected",
  "reason": "Business credentials could not be verified. Please resubmit with additional documentation."
}
```

**Request for More Info:**

```json theme={null}
{
  "status": "additional_info_required",
  "message": "Please provide the following additional documents...",
  "required_documents": ["bank_statement", "article_of_incorporation"]
}
```

## Step 6: Set Up Your Dock

Once approved, create your retrieval endpoint:

```bash theme={null}
curl -X POST https://api.docyard.io/v1/docks \
  -H "X-API-Key: dk_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production Dock",
    "description": "Main retrieval endpoint for document access"
  }'
```

**Response:**

```json theme={null}
{
  "dock_id": "dock-abc123",
  "api_key": "dk_live_coll_aaaaaaaa",
  "api_secret": "dk_secret_coll_bbbbbbbb",
  "status": "active"
}
```

**Important**: Save your `api_key` and `api_secret` securely.

## Testing Your Dock

Verify your dock is working:

```bash theme={null}
curl -X GET https://api.docyard.io/v1/dock/lock-types \
  -H "X-API-Key: dk_live_coll_aaaaaaaa"
```

**Response:**

```json theme={null}
{
  "lock_types": [
    { "name": "policy_number", "usage_count": 15420 },
    { "name": "loan_number", "usage_count": 8932 }
  ]
}
```

## Retrieving Your First Document

Search for artifacts:

```bash theme={null}
curl -X POST https://api.docyard.io/v1/dock/search \
  -H "X-API-Key: dk_live_coll_aaaaaaaa" \
  -H "X-API-Secret: dk_secret_coll_bbbbbbbb" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": {
      "document_type": "declaration_page"
    }
  }'
```

Retrieve with your keys:

```bash theme={null}
curl -X POST https://api.docyard.io/v1/dock/retrieve/art-abc123 \
  -H "X-API-Key: dk_live_coll_aaaaaaaa" \
  -H "X-API-Secret: dk_secret_coll_bbbbbbbb" \
  -H "Content-Type: application/json" \
  -d '{
    "keys": {
      "policy_number": "POL-12345678"
    }
  }'
```

## Requesting Additional Permissions

If you need access to more lock types:

```bash theme={null}
curl -X POST https://api.docyard.io/v1/docks/dock-abc123/request-permissions \
  -H "X-API-Key: dk_live_coll_aaaaaaaa" \
  -H "Content-Type: application/json" \
  -d '{
    "requested_locks": ["vin_number", "vehicle_make"],
    "justification": "We are expanding into auto insurance verification for collateral assessment."
  }'
```

Docyard admins will review and approve/reject.

## Re-Verification

Collectors must periodically re-verify their credentials:

| Document Type               | Re-verification Period    |
| --------------------------- | ------------------------- |
| Business licenses           | Annual                    |
| Industry credentials (NMLS) | As required by regulation |
| Business address            | Bi-annual                 |

You'll receive an email 30 days before re-verification is due.

## Troubleshooting

### Long Review Time

If review takes more than 5 business days:

```
support@docyard.io
```

Include your collector ID.

### Application Rejected

Contact support to understand the rejection reason and required steps for resubmission.

### Can't Use Certain Lock Types

Ensure your key declarations include those lock types. Contact support to update declarations.

***

## Next Steps

* **[Bulk Retrieval](/guides/bulk-retrieval)** - Retrieve multiple documents
* **[Core Concepts](/concepts/collectors)** - Understand collectors
* **[API Reference](/api-reference/docks)** - Full dock API
