Skip to main content

SDS Module

Formula management with automatic allergen detection, SDS generation, and allergen certificate compliance.

Base URL: https://app.proign.com/[tenant]/sds/api

Overview

The SDS module helps manage product formulas and generate compliance documentation including Safety Data Sheets and allergen certificates.

Features

  • Formula Management - Create and manage product formulas with ingredients
  • Ingredient Database - PubChem integration for chemical data
  • Allergen Detection - Automatic EU allergen detection in formulas
  • SDS Generation - Generate Safety Data Sheets from formulas
  • Allergen Certificates - Generate allergen compliance certificates
  • Bulk Import - Import formulas from spreadsheets

API Endpoints

Formulas

GET    /api/[tenant]/formulas               # List formulas
POST   /api/[tenant]/formulas               # Create formula
GET    /api/[tenant]/formulas/import        # Get import template
POST   /api/[tenant]/formulas/import        # Bulk import formulas

Formula Actions

# Allergen Detection
GET    /api/[tenant]/formulas/[id]/detect-allergens  # Get detected allergens
POST   /api/[tenant]/formulas/[id]/detect-allergens  # Run allergen detection

# Certificate Generation
GET    /api/[tenant]/formulas/[id]/certificate       # Get certificate
POST   /api/[tenant]/formulas/[id]/certificate       # Generate allergen certificate

# SDS Generation
GET    /api/[tenant]/formulas/[id]/sds               # Get SDS
POST   /api/[tenant]/formulas/[id]/sds               # Generate SDS PDF

Ingredients

GET    /api/[tenant]/ingredients            # List ingredients
POST   /api/[tenant]/ingredients            # Create ingredient
GET    /api/[tenant]/ingredients/search     # Search PubChem database

Allergens

GET    /api/[tenant]/allergens              # List EU allergens
POST   /api/[tenant]/allergens/detect       # Detect allergens in text

EU Allergens

The module detects all 26 EU cosmetic allergens per Regulation (EC) No 1223/2009 Annex III:

AllergenCAS Number
Limonene5989-27-5
Linalool78-70-6
Citronellol106-22-9
Geraniol106-24-1
Eugenol97-53-0
Coumarin91-64-5
Cinnamal104-55-2
Citral5392-40-5
Benzyl Alcohol100-51-6
Benzyl Benzoate120-51-4
Benzyl Cinnamate103-41-3
Benzyl Salicylate118-58-1
Cinnamyl Alcohol104-54-1
Farnesol4602-84-0
Hexyl Cinnamal101-86-0
Hydroxycitronellal107-75-5
Isoeugenol97-54-1
Amyl Cinnamal122-40-7
Amylcinnamyl Alcohol101-85-9
Anise Alcohol105-13-5
Butylphenyl Methylpropional80-54-6
Hydroxyisohexyl 3-Cyclohexene31906-04-4
Evernia Prunastri Extract90028-68-5
Evernia Furfuracea Extract90028-67-4
Methyl 2-Octynoate111-12-6
Alpha-Isomethyl Ionone127-51-5

PubChem Integration

The ingredient search endpoint queries PubChem for chemical data:

GET /api/[tenant]/ingredients/search?q=limonene

// Response
{
  "data": [
    {
      "name": "Limonene",
      "cas_number": "5989-27-5",
      "molecular_formula": "C10H16",
      "molecular_weight": 136.23,
      "is_allergen": true,
      "allergen_id": "eu_limonene",
      "pubchem_cid": 22311
    }
  ]
}

PubChem results are cached locally after first lookup to reduce external API calls. The cache is refreshed monthly.

Workflow

The typical formula-to-certificate workflow:

  1. Create Formula — Enter product name and add ingredients with percentages
  2. Search Ingredients — Use PubChem search to find chemical data for each ingredient
  3. Run Detection — System automatically identifies EU allergens in the formula
  4. Generate Certificate — Create a PDF allergen declaration certificate
  5. Generate SDS — Create a full Safety Data Sheet with all required GHS sections
  6. Publish — Make SDS available on the public portal for customers

Bulk Import

Import existing formulas from a spreadsheet:

# Download template
GET /api/[tenant]/formulas/import

# Upload CSV with formulas
POST /api/[tenant]/formulas/import
Content-Type: multipart/form-data

# CSV format:
# formula_name, sku, ingredient_name, percentage, cas_number
# "Lavender Lotion", "LOT-001", "Aqua", 70, ""
# "Lavender Lotion", "LOT-001", "Lavender Oil", 2, "8000-28-0"
# "Lavender Lotion", "LOT-001", "Glycerin", 5, "56-81-5"

The import automatically groups rows by formula name and runs allergen detection on each formula after import.

Request Examples

Create Formula

POST /api/[tenant]/formulas
Content-Type: application/json

{
  "name": "Lavender Body Lotion",
  "sku": "LOT-LAV-001",
  "ingredients": [
    { "name": "Aqua", "percentage": 70 },
    { "name": "Lavender Oil", "percentage": 2 },
    { "name": "Glycerin", "percentage": 5 }
  ]
}

Generate Certificate

POST /api/[tenant]/formulas/[id]/certificate

# Returns PDF or JSON with allergen declaration

Public SDS Portal

Customers can access SDS documents through a public portal atapp.proign.com/{tenant}/sds. No authentication is required, making it easy to share compliance documents.

Related