FSSAI
1 endpoint · Core API
This API checks the validity and status of food business licenses issued by the Food Safety and Standards Authority of India.
Benefits
- Verify food business licenses
- Ensure regulatory compliance
- Build trust with verified vendors
- Integrate into onboarding or audit workflows
What you can do
Authenticate FSSAI license numbers to validate food business credentials and ensure food safety compliance.
Get FSSAI details
docs.signcare.io/core/api/business-registration/fssai/#post-api-v1-fssai
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
- Content-Typestringrequiredapplication/json
Body parameters
application/json- consentstringrequiredRequired. The end user's consent to this verification. Send `Y`.minLength 1default Y
- consent_textstringrequiredRequired. The consent statement shown to the end user. Send the default text from the sample.minLength 1default I hear by declare my consent agreeme…
- request_idstringoptionalOptional. Your own id to correlate this call in your logs. A unique id is generated if you leave it out.nullable
- fssaiNumberstringrequiredRequired. FSSAI license number to verify: exactly 14 digits, no spaces.length 14pattern ^\d{14}$default 10721004000481
Sample request body
{
"consent": "Y",
"consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API",
"fssaiNumber": "10721004000481"
}
Responses
200OK
- successbooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 200
- messagestringoptionalNo description.nullabledefault XXXXX
- dataobjectoptionalResponse model containing FSSAI license verification details.
13 fields
- premise_addressstringoptionalAddress of the licensed premises.nullable
- fssai_numberstringoptionalFSSAI license number.nullable
- license_category_namestringoptionalName of the license category.nullable
- state_namestringoptionalState where the license is registered.nullable
- status_descriptionstringoptionalDescription of the license status.nullable
- license_category_idstringoptionalIdentifier for the license category.nullable
- taluk_namestringoptionalTaluk (sub-district) where the premises is located.nullable
- district_namestringoptionalDistrict where the premises is located.nullable
- company_namestringoptionalName of the company holding the FSSAI license.nullable
- license_active_flagbooleanoptionalIndicates whether the license is currently active.
- app_type_descriptionstringoptionalDescription of the application type.nullable
- village_namestringoptionalVillage where the premises is located.nullable
- premise_pincodestringoptionalPIN code of the licensed premises.nullable
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- isBillablebooleanoptionalWhether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
Example
{
"success": false,
"statusCode": 200,
"message": "XXXXX",
"data": {
"premise_address": "string",
"fssai_number": "string",
"license_category_name": "string",
"state_name": "string",
"status_description": "string",
"license_category_id": "string",
"taluk_name": "string",
"district_name": "string",
"company_name": "string",
"license_active_flag": false,
"app_type_description": "string",
"village_name": "string",
"premise_pincode": "string"
},
"messages": [
"string"
],
"request_id": "string",
"isBillable": false
}
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
Example
{
"data": {},
"messages": [
"string"
],
"request_id": "string",
"success": false,
"message": "XXXXX",
"isBillable": false,
"statusCode": 400
}
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
Example
{
"data": {},
"messages": [
"string"
],
"request_id": "string",
"success": false,
"message": "XXXXX",
"isBillable": false,
"statusCode": 401
}
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500
Example
{
"data": {},
"messages": [
"string"
],
"request_id": "string",
"success": false,
"message": "XXXXX",
"isBillable": false,
"statusCode": 500
}
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/api/v1/FSSAI' \
-H 'X-API-KEY: YOUR_API_KEY' \
-H 'X-API-APP-ID: YOUR_APP_ID' \
-H 'Content-Type: application/json' \
-d '{
"consent": "Y",
"consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API",
"fssaiNumber": "10721004000481"
}'