Merchants must create products before they can be included in a Checkout.
Each product response includes an eligibility_type
field with one of:
sigis_eligible
lmn_eligible
vision_eligible
not_eligible
Create a Product
POST /v1/products
Content-Type: application/json
Authorization: Bearer <merchant_api_token>
Idempotency-Key: <uuid-v4>
Body
{
"name": "Blood Pressure Monitor",
"upc": "001230000",
"gtin": "00000000000000",
"category": "medical_device",
"description": "Bluetooth BP cuff",
"external_id": "123-abc"
}
Success 201
{
"product_id": "prod_abc123",
"name": "Blood Pressure Monitor",
"eligibility_type": "sigis_eligible",
"created_at": "2025-06-05T12:00:00Z"
}
List Products
GET /v1/products
Authorization: Bearer <merchant_api_token>
Optional query parameters: limit
, starting_after
.
Retrieve a Product
GET /v1/products/{product_id}
Authorization: Bearer <merchant_api_token>
Update a Product
PUT /v1/products/{product_id}
Content-Type: application/json
Authorization: Bearer <merchant_api_token>
Idempotency-Key: <uuid-v4>
Pass only the fields you want to change.
Delete a Product
DELETE /v1/products/{product_id}
Authorization: Bearer <merchant_api_token>
Returns 204 No Content on success.
Batch Eligibility Lookup
Send up to 100 product IDs per call.
GET /v1/products/eligibility?ids=prod_1,prod_2,prod_3
Authorization: Bearer <merchant_api_token>
Success 200
{
"results": [
{ "product_id": "prod_1", "eligibility_type": "sigis_eligible" },
{ "product_id": "prod_2", "eligibility_type": "not_eligible" },
{ "product_id": "prod_3", "eligibility_type": "vision_eligible" }
]
}
Subscribe to the productStatusChange webhook to stay in sync with SIGIS updates.