Verify_India_API/GST_SETUP_INSTRUCTIONS.md

67 lines
2.2 KiB
Markdown

# GST Verification Setup Instructions
## Problem Identified ✅
The GST credentials you provided are **NOT in the `.env` file**. The environment variables are `undefined` when the app runs.
## Solution
You need to **add the following lines to your `.env` file**:
```env
# GST Verification (Setu)
GST_PROVIDER_URL=https://dg-sandbox.setu.co/api/verify/gst
GST_CLIENT_ID=292c6e76-dabf-49c4-8e48-90fba2916673
GST_CLIENT_SECRET=7IZMe9zvoBBuBukLiCP7n4KLwSOy11oP
GST_PRODUCT_INSTANCE_ID=69e23f7f-4f71-412e-aec6-b1da3fb77c6f
```
## Steps to Fix
1. **Open your `.env` file** (it's in the root of your project)
2. **Add the GST credentials** (copy the lines above)
3. **Restart your server**:
- Stop the current server (Ctrl+C in terminal)
- Run `npm run dev` again
4. **Test the endpoint** with this curl command:
### PowerShell (Windows):
```powershell
Invoke-WebRequest -Uri "http://localhost:3000/v1/gst/verify/27AAACM1234A1Z5" -Headers @{"x-api-key"="vf_test_369afc881da118c02ade27d323aaf3c186945edce6bcdf02"} -Method GET | Select-Object -ExpandProperty Content
```
### Bash/CMD (if you have curl.exe):
```bash
curl -X GET http://localhost:3000/v1/gst/verify/27AAACM1234A1Z5 -H "x-api-key: vf_test_369afc881da118c02ade27d323aaf3c186945edce6bcdf02"
```
## What I Fixed
1.**Applied the same fix that worked for PAN verification**:
- Created fresh axios instance to avoid global defaults pollution
- Clean credentials by trimming whitespace
- Added detailed debug logging
- Enhanced error handling for auth failures
2.**The code is ready** - it just needs the credentials in `.env`
## After Adding Credentials
Once you add the credentials to `.env` and restart, you should see:
**Debug logs in terminal:**
```
[GST Service] Sending request to provider: {
url: 'https://dg-sandbox.setu.co/api/verify/gst',
'x-client-id': '292c6e76-dabf-49c4-8e48-90fba2916673',
'x-client-secret': '****11oP',
'x-product-instance-id': '69e23f7f-4f71-412e-aec6-b1da3fb77c6f',
requestBody: { gstin: '27AAACM1234A1Z5' }
}
```
**Note**: If you still get authentication errors after adding to `.env`, it means the Setu sandbox credentials themselves are invalid or expired. You'll need to verify them with Setu.