8.4 KiB
8.4 KiB
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_TOKENenvironment variable) - Client Identifier:
SheriffSecureClient-v1(configured viaSHERIFF_CLIENT_IDENTIFIERenvironment 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 authenticationSHERIFF_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
apiCallErrorsarray allCallsSucceededboolean 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