Supplier Certifications API

Reference for SupplierCertification REST endpoints — manage certification records, digital signatures, and verification status for suppliers.

Endpoints

MethodPathDescription
GET/api/v1/supplier-certifications?supplierId={id}List certifications for a supplier
GET/api/v1/supplier-certifications/{id}Get a certification by ID
POST/api/v1/supplier-certifications?supplierId={id}Create a certification
PATCH/api/v1/supplier-certifications/{id}Update a certification
DELETE/api/v1/supplier-certifications/{id}Delete a certification
Warning

The supplierId query parameter is required on POST and GET (list) requests.


GET /api/v1/supplier-certifications

Lists all certifications for a given supplier.

Query Parameters

ParameterTypeRequiredDescription
supplierIdintegerFilter by supplier ID
Shell
curl "http://localhost:8080/api/v1/supplier-certifications?supplierId=1"

Response 200 OK

JSON
[
{
"id": 1,
"supplier_id": 1,
"certification_type": "GOTS",
"certificate_number": "GOTS-2025-IT-00123",
"certificate_expiry": "2026-12-31",
"document_id": 42,
"is_digitally_signed": true,
"signature_verified": true,
"verification_status": "VERIFIED",
"verification_details": "Signature validated via API",
"verified_at": "2025-09-15T10:00:00",
"created_at": "2025-09-01T10:00:00",
"updated_at": "2025-09-15T10:00:00"
}
]

POST /api/v1/supplier-certifications

Request Body

FieldTypeRequiredDescription
certification_typestringType of certification (e.g. GOTS, GRS, OEKO_TEX, ISO_14001)
certificate_numberstringCertificate reference number
certificate_expirystring (date)Expiry date in YYYY-MM-DD format
document_idintegerFK to an uploaded document
is_digitally_signedbooleanWhether the certificate is digitally signed
signature_verifiedbooleanWhether the signature has been verified
verification_statusstringe.g. PENDING, VERIFIED, REJECTED
verification_detailsstringDetails about the verification
Shell
curl -X POST "http://localhost:8080/api/v1/supplier-certifications?supplierId=1" \
-H "Content-Type: application/json" \
-d '{
"certification_type": "GOTS",
"certificate_number": "GOTS-2025-IT-00123",
"certificate_expiry": "2026-12-31",
"is_digitally_signed": true,
"verification_status": "PENDING"
}'
JavaScript
const resp = await fetch('/api/v1/supplier-certifications?supplierId=1', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
certification_type: 'GOTS',
certificate_number: 'GOTS-2025-IT-00123',
certificate_expiry: '2026-12-31',
is_digitally_signed: true,
verification_status: 'PENDING'
})
});

Response 201 Created

JSON
{
"id": 5,
"supplier_id": 1,
"certification_type": "GOTS",
"certificate_number": "GOTS-2025-IT-00123",
"certificate_expiry": "2026-12-31",
"document_id": null,
"is_digitally_signed": true,
"signature_verified": null,
"verification_status": "PENDING",
"verification_details": null,
"verified_at": null,
"created_at": "2025-09-15T10:00:00",
"updated_at": "2025-09-15T10:00:00"
}

PATCH /api/v1/supplier-certifications/{id}

Partially updates a certification. Only the fields present in the request body are updated.

Shell
curl -X PATCH http://localhost:8080/api/v1/supplier-certifications/5 \
-H "Content-Type: application/json" \
-d '{
"signature_verified": true,
"verification_status": "VERIFIED",
"verification_details": "Signature validated via third-party API"
}'

DELETE /api/v1/supplier-certifications/{id}

Deletes a certification record.

Shell
curl -X DELETE http://localhost:8080/api/v1/supplier-certifications/5

Response: 204 No Content