Consumers represent the individuals whose payments are being reported to credit bureaus. You register a consumer once, then create tradelines and report payments against them.
Creating a consumer
curl -X POST https://vvdufluovypptsnkihyv.supabase.co/functions/v1/consumers \
-H "x-api-key: sk_test_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Jane",
"last_name": "Doe",
"date_of_birth": "1990-05-15",
"ssn": "123-45-6789",
"phone": "+15551234567",
"email": "[email protected]",
"address": {
"street": "123 Main St",
"city": "Austin",
"state": "TX",
"postal_code": "73301"
},
"external_id": "sp-user-001"
}'
Required fields
| Field | Type | Description |
|---|
first_name | string | Max 25 chars |
last_name | string | Max 25 chars |
date_of_birth | string | YYYY-MM-DD |
phone | string | E.164 format (e.g., +15551234567) |
email | string | Valid email address |
address | object | Street, city, state (2-char), postal_code |
Optional fields
| Field | Type | Description |
|---|
middle_name | string | Max 25 chars |
ssn | string | SSN (XXX-XX-XXXX or XXXXXXXXX). Encrypted at rest, never returned. |
address.country | string | 2-char ISO code. Default: US |
external_id | string | Your internal ID. Max 255 chars. |
SSN handling
SSNs are encrypted at rest using PGP symmetric encryption and are never returned in any API response, including GET requests.
You can update an SSN via PATCH /consumers/:id — the new value will be re-encrypted.
Uniqueness
Uniqueness is enforced per-partner on email and external_id. Attempting to create a duplicate returns 409 CONFLICT.
Soft deletion
DELETE /consumers/:id is a soft delete:
- Sets
deleted_at to the current timestamp
- Deactivates all related tradelines (
is_active = false)
- Consumer no longer appears in list results or is accessible by ID
{ "message": "Consumer deleted" }
Listing and filtering
curl "https://vvdufluovypptsnkihyv.supabase.co/functions/v1/[email protected]" \
-H "x-api-key: sk_test_your_api_key_here"
| Filter | Type | Description |
|---|
email | string | Exact match |
external_id | string | Exact match |
phone | string | Exact match |
See Pagination for page and per_page params.