228 lines
8.4 KiB
Markdown
228 lines
8.4 KiB
Markdown
# Sheriff API Endpoints Documentation
|
|
|
|
This document lists all Sheriff API endpoints used by the Duxiter server application.
|
|
|
|
## Overview
|
|
|
|
The Duxiter server integrates with The Sheriff API (https://prod.api.thesheriff.cl/api/v1) to fetch comprehensive company and individual data for risk assessment and compliance checking.
|
|
|
|
## Authentication
|
|
|
|
All Sheriff API calls use:
|
|
- **Base URL**: `https://prod.api.thesheriff.cl/api/v1`
|
|
- **Authorization**: Bearer token (configured via `SHERIFF_API_TOKEN` environment variable)
|
|
- **Client Identifier**: `SheriffSecureClient-v1` (configured via `SHERIFF_CLIENT_IDENTIFIER` environment variable)
|
|
- **Content-Type**: `application/json`
|
|
- **Accept**: `application/json`
|
|
|
|
## External Sheriff API Endpoints Used
|
|
|
|
### 1. Load RUT Data
|
|
- **Endpoint**: `POST /helper/loadRut`
|
|
- **Purpose**: Initialize RUT data in Sheriff system
|
|
- **Payload**: `{ rut: string, isMonitoring: boolean }`
|
|
- **Used in**: `SheriffService.queryRut()`
|
|
|
|
### 2. Summary Data
|
|
- **Endpoint**: `GET /helper/{rut}/summary`
|
|
- **Purpose**: Get comprehensive summary including compliance data
|
|
- **Used in**: `SheriffService.queryRut()`
|
|
- **Note**: Includes compliance, SII data, and risk assessment
|
|
|
|
### 3. Civil Cases Data
|
|
- **Endpoint**: `GET /helper/{rut}/getCivilCases`
|
|
- **Purpose**: Retrieve civil court cases
|
|
- **Used in**: `SheriffService.queryRut()`
|
|
- **Limit**: Results limited to 10 items
|
|
|
|
### 4. Labor Cases Data
|
|
- **Endpoint**: `GET /helper/{rut}/getLaboralCases`
|
|
- **Purpose**: Retrieve labor court cases
|
|
- **Used in**: `SheriffService.queryRut()`
|
|
- **Limit**: Results limited to 10 items
|
|
|
|
### 5. Collection Cases Data
|
|
- **Endpoint**: `GET /helper/{rut}/getCobranzaCases`
|
|
- **Purpose**: Retrieve debt collection cases
|
|
- **Used in**: `SheriffService.queryRut()`
|
|
- **Limit**: Results limited to 10 items
|
|
|
|
### 6. Pension Arrears Cases
|
|
- **Endpoint**: `GET /helper/{rut}/getMoraPrevisionalCases`
|
|
- **Purpose**: Retrieve pension/social security arrears cases
|
|
- **Used in**: `SheriffService.queryRut()`
|
|
- **Limit**: Results limited to 10 items
|
|
|
|
### 7. Labor Fines Data
|
|
- **Endpoint**: `GET /helper/{rut}/getMultaLaboralCases`
|
|
- **Purpose**: Retrieve labor-related fines and sanctions
|
|
- **Used in**: `SheriffService.queryRut()`
|
|
- **Limit**: Results limited to 10 items
|
|
|
|
### 8. Corporate Network Data
|
|
- **Endpoint**: `GET /helper/{rut}/mallaSocietaria`
|
|
- **Purpose**: Retrieve corporate network and partnership information
|
|
- **Used in**: `SheriffService.queryRut()`
|
|
- **Limit**: Results limited to 10 items
|
|
- **Note**: Contains PDF links for corporate documents
|
|
|
|
### 9. Official Diary Data
|
|
- **Endpoint**: `GET /helper/{rut}/getOfficialDiary`
|
|
- **Purpose**: Retrieve official government diary publications
|
|
- **Used in**: `SheriffService.queryRut()`
|
|
- **Limit**: Results limited to 10 items
|
|
|
|
### 10. Commercial Bulletin Cases
|
|
- **Endpoint**: `GET /helper/{rut}/getCommercialBulletinCases`
|
|
- **Purpose**: Retrieve commercial bulletin publications
|
|
- **Used in**: `SheriffService.queryRut()`
|
|
- **Limit**: Results limited to 10 items
|
|
|
|
### 11. Credit Scoring Data
|
|
- **Endpoint**: `GET /notification/creditScoring/{rut}/getByRut`
|
|
- **Purpose**: Retrieve credit scoring and financial risk data
|
|
- **Used in**: `SheriffService.queryRut()`
|
|
|
|
## Internal Duxiter API Endpoints (Sheriff-related)
|
|
|
|
### RUT Routes (`/api/rut`)
|
|
|
|
#### 1. RUT Lookup
|
|
- **Endpoint**: `POST /api/rut/lookup`
|
|
- **Purpose**: Perform comprehensive RUT lookup using Sheriff API
|
|
- **Authentication**: Required (Bearer token)
|
|
- **Middleware**: `authenticate`, `tenantFilter`
|
|
- **Controller**: `RutController.lookupRut`
|
|
- **Request Body**: `{ rut: string, isMonitoring?: boolean }`
|
|
|
|
#### 2. Get RUT Resume
|
|
- **Endpoint**: `GET /api/rut/resume/{rut}`
|
|
- **Purpose**: Generate AI-powered resume with PDF downloads
|
|
- **Authentication**: Required (Bearer token)
|
|
- **Middleware**: `authenticate`, `tenantFilter`
|
|
- **Controller**: `RutController.getRutResume`
|
|
|
|
#### 3. Get All Sheriff Logs
|
|
- **Endpoint**: `GET /api/rut/sheriff-logs`
|
|
- **Purpose**: Retrieve paginated list of Sheriff data logs
|
|
- **Authentication**: Required (Bearer token)
|
|
- **Middleware**: `authenticate`, `tenantFilter`
|
|
- **Controller**: `RutController.getAllSheriffLogs`
|
|
- **Query Parameters**: `page`, `limit`
|
|
|
|
#### 4. Get Sheriff Log Detail
|
|
- **Endpoint**: `GET /api/rut/sheriff-logs/{logId}`
|
|
- **Purpose**: Retrieve specific Sheriff data log by ID
|
|
- **Authentication**: Required (Bearer token)
|
|
- **Middleware**: `authenticate`, `tenantFilter`
|
|
- **Controller**: `RutController.getSheriffLogDetail`
|
|
|
|
#### 5. Get Results
|
|
- **Endpoint**: `GET /api/rut/results`
|
|
- **Purpose**: Retrieve all results
|
|
- **Authentication**: Required (Bearer token)
|
|
- **Middleware**: `authenticate`, `tenantFilter`
|
|
- **Controller**: `RutController.getResults`
|
|
|
|
#### 6. Get Latest Result
|
|
- **Endpoint**: `GET /api/rut/results/latest`
|
|
- **Purpose**: Retrieve the most recent result
|
|
- **Authentication**: Required (Bearer token)
|
|
- **Middleware**: `authenticate`, `tenantFilter`
|
|
- **Controller**: `RutController.getLatestResult`
|
|
|
|
#### 7. Get Result by RUT
|
|
- **Endpoint**: `GET /api/rut/results/rut/{rut}`
|
|
- **Purpose**: Retrieve result for specific RUT
|
|
- **Authentication**: Required (Bearer token)
|
|
- **Middleware**: `authenticate`, `tenantFilter`
|
|
- **Controller**: `RutController.getResultByRut`
|
|
|
|
#### 8. Get Result by ID
|
|
- **Endpoint**: `GET /api/rut/results/{id}`
|
|
- **Purpose**: Retrieve result by specific ID
|
|
- **Authentication**: Required (Bearer token)
|
|
- **Middleware**: `authenticate`, `tenantFilter`
|
|
- **Controller**: `RutController.getResultById`
|
|
|
|
#### 9. Get Company Details
|
|
- **Endpoint**: `GET /api/rut/company-details/{rut}`
|
|
- **Purpose**: Retrieve company details by RUT
|
|
- **Authentication**: Required (Bearer token)
|
|
- **Middleware**: `authenticate`, `tenantFilter`
|
|
- **Controller**: `RutController.getCompanyDetailsByRut`
|
|
|
|
#### 10. Get Company Risks
|
|
- **Endpoint**: `GET /api/rut/company-risks/{rut}`
|
|
- **Purpose**: Retrieve company risk assessment by RUT
|
|
- **Authentication**: Required (Bearer token)
|
|
- **Middleware**: `authenticate`, `tenantFilter`
|
|
- **Controller**: `RutController.getCompanyRisksByRut`
|
|
|
|
#### 11. Delete Result
|
|
- **Endpoint**: `DELETE /api/rut/results/{id}`
|
|
- **Purpose**: Delete specific result by ID
|
|
- **Authentication**: Required (Bearer token)
|
|
- **Middleware**: `authenticate`, `tenantFilter`
|
|
- **Controller**: `RutController.deleteResult`
|
|
|
|
### Sheriff Data Log Routes (`/api/sheriff-data-logs`)
|
|
|
|
#### 1. Get Logs by Tenant
|
|
- **Endpoint**: `GET /api/sheriff-data-logs/tenant`
|
|
- **Purpose**: Retrieve all Sheriff data logs for authenticated tenant
|
|
- **Authentication**: Required (Bearer token)
|
|
- **Middleware**: `authenticate`, `tenantFilter`
|
|
- **Controller**: `getSheriffDataLogsByTenant`
|
|
|
|
#### 2. Get Log by RUT
|
|
- **Endpoint**: `GET /api/sheriff-data-logs/rut/{rut}`
|
|
- **Purpose**: Retrieve Sheriff data log by RUT
|
|
- **Authentication**: Required (Bearer token)
|
|
- **Middleware**: `authenticate`, `tenantFilter`
|
|
- **Controller**: `getSheriffDataLogByRut`
|
|
|
|
#### 3. Get Log by ID
|
|
- **Endpoint**: `GET /api/sheriff-data-logs/{id}`
|
|
- **Purpose**: Retrieve Sheriff data log by ID
|
|
- **Authentication**: Required (Bearer token)
|
|
- **Middleware**: `authenticate`, `tenantFilter`
|
|
- **Controller**: `getSheriffDataLogById`
|
|
|
|
## Data Models
|
|
|
|
### SheriffDataLog
|
|
Stores comprehensive data from Sheriff API calls including:
|
|
- Basic info (RUT, tenant, timestamps)
|
|
- API call results (summary, cases, corporate network, etc.)
|
|
- Error tracking
|
|
- PDF associations
|
|
- AI-generated summaries
|
|
|
|
### SheriffApiCallLog
|
|
Stores individual API call results separately for better performance:
|
|
- Links to main SheriffDataLog
|
|
- Specific call name and data
|
|
- Optimized for large datasets
|
|
|
|
## Environment Variables
|
|
|
|
- `SHERIFF_API_URL`: Sheriff API base URL (default: https://prod.api.thesheriff.cl/api/v1)
|
|
- `SHERIFF_API_TOKEN`: Bearer token for Sheriff API authentication
|
|
- `SHERIFF_CLIENT_IDENTIFIER`: Client identifier header (default: SheriffSecureClient-v1)
|
|
- `SHERIFF_PAGINATION_LIMIT`: Default pagination limit for logs (default: 10)
|
|
|
|
## Error Handling
|
|
|
|
All Sheriff API calls include comprehensive error handling:
|
|
- Individual call failures are logged but don't stop the entire process
|
|
- Error details are stored in `apiCallErrors` array
|
|
- `allCallsSucceeded` boolean indicates overall success status
|
|
- Tenant isolation ensures data security
|
|
|
|
## Rate Limiting and Performance
|
|
|
|
- Results are limited to 10 items per endpoint to manage payload size
|
|
- PDF downloads are handled asynchronously
|
|
- Separate collections optimize query performance
|
|
- Tenant filtering ensures data isolation |