144 lines
3.5 KiB
Markdown
144 lines
3.5 KiB
Markdown
# Equifax Integration Setup
|
|
|
|
## Overview
|
|
This document describes the setup and configuration required for the Equifax data provider integration in the Duxiter system.
|
|
|
|
## Environment Variables
|
|
|
|
The following environment variables must be configured for the Equifax integration to work properly:
|
|
|
|
### API Configuration
|
|
```bash
|
|
# Equifax API URLs
|
|
EQUIFAX_UAT_URL=https://api.uat.equifax.cl
|
|
EQUIFAX_PROD_URL=https://api.equifax.cl
|
|
EQUIFAX_ENVIRONMENT=uat # 'uat' or 'prod'
|
|
|
|
# OAuth Credentials
|
|
EQUIFAX_CLIENT_ID=your_client_id
|
|
EQUIFAX_CLIENT_SECRET=your_client_secret
|
|
EQUIFAX_USERNAME=your_username
|
|
EQUIFAX_PASSWORD=your_password
|
|
```
|
|
|
|
### Personal Data Configuration
|
|
```bash
|
|
# Default personal information for requests
|
|
EQUIFAX_FIRST_NAME=
|
|
EQUIFAX_MIDDLE_NAME=
|
|
EQUIFAX_LAST_NAME=
|
|
EQUIFAX_MOTHER_LAST_NAME=
|
|
EQUIFAX_NATIONAL_ID=
|
|
EQUIFAX_CHILEAN_SERIAL_NUMBER=
|
|
EQUIFAX_REQUEST_TYPE=RUT # 'RUT' or 'PASSPORT'
|
|
```
|
|
|
|
### Product Data Configuration
|
|
```bash
|
|
# Product configuration as required by Equifax API
|
|
BILL_TO=
|
|
SHIP_TO=
|
|
PRODUCT_NAME=
|
|
PRODUCT_ORCH=
|
|
CONFIGURATION=Config
|
|
CUSTOMER=
|
|
MODEL=
|
|
```
|
|
|
|
## API Endpoints
|
|
|
|
The integration provides the following endpoints:
|
|
|
|
### Query RUT
|
|
- **POST** `/api/equifax/query/:rut`
|
|
- Query Equifax for company/person information by RUT
|
|
- Requires authentication and tenant isolation
|
|
|
|
### Bulk Query
|
|
- **POST** `/api/equifax/bulk-query`
|
|
- Query multiple RUTs in a single request
|
|
- Requires authentication and tenant isolation
|
|
|
|
### Health Check
|
|
- **GET** `/api/equifax/health`
|
|
- Check the health status of the Equifax service
|
|
- Requires authentication
|
|
|
|
## Request Structure
|
|
|
|
The service uses the following payload structure as required by Equifax:
|
|
|
|
```json
|
|
{
|
|
"applicants": {
|
|
"primaryConsumer": {
|
|
"personalInformation": {
|
|
"firstName": "string",
|
|
"middleName": "string",
|
|
"lastName": "string",
|
|
"motherLastName": "string",
|
|
"nationalId": "string",
|
|
"chileanSerialNumber": "string",
|
|
"requestType": "RUT"
|
|
}
|
|
}
|
|
},
|
|
"productData": {
|
|
"billTo": "string",
|
|
"shipTo": "string",
|
|
"productName": "string",
|
|
"productOrch": "string",
|
|
"configuration": "Config",
|
|
"customer": "string",
|
|
"model": "string"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Features
|
|
|
|
- **OAuth Token Management**: Automatic token caching and renewal
|
|
- **Environment Support**: Configurable for UAT and production environments
|
|
- **Logging**: Comprehensive logging to Elasticsearch via ELK service
|
|
- **Error Handling**: Robust error handling with detailed error messages
|
|
- **File Storage**: Optional saving of API responses to files
|
|
- **Health Monitoring**: Health check endpoint for service monitoring
|
|
- **Tenant Isolation**: Full tenant isolation support
|
|
|
|
## Usage Example
|
|
|
|
```typescript
|
|
// Query a single RUT
|
|
const response = await fetch('/api/equifax/query/12345678-9', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Authorization': 'Bearer your_token',
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify({
|
|
personalData: {
|
|
firstName: 'Juan',
|
|
lastName: 'Pérez'
|
|
},
|
|
productData: {
|
|
productName: 'Credit Report'
|
|
}
|
|
})
|
|
});
|
|
```
|
|
|
|
## Security Considerations
|
|
|
|
- All endpoints require authentication
|
|
- Tenant isolation is enforced
|
|
- API credentials should be stored securely
|
|
- Responses can be optionally saved to files for audit purposes
|
|
- All API calls are logged for monitoring and debugging
|
|
|
|
## Monitoring
|
|
|
|
The service integrates with the existing ELK stack for:
|
|
- Business event logging
|
|
- API call monitoring
|
|
- Error tracking
|
|
- Performance metrics |