Create Case with Products
Endpoint Details
Base URLs
- Production:
https://api.care360-next.carevalidate.com/api/v1/cases - Staging:
https://api-staging.care360-next.carevalidate.com/api/v1/cases
Method: POST
Content-Type: application/json
Authentication
Required Headers
Authorization: Bearer <access_token>
Content-Type: application/json
Request Body Structure
Root Fields
| Field | Type | Required | Description |
|---|---|---|---|
isTest | boolean | Yes | Enables test mode |
forceCreate | boolean | Yes | Force new case creation even if an open case exists |
user | object | Yes | User details |
payment | object | Yes | Total payment information |
products | array | Yes | Products to attach to the case |
User Object
{
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com",
"gender": "MALE",
"phoneNumber": "+1987654321",
"dob": "1990-05-15",
"languagePreferences": [
"en"
],
"shippingAddress": {}
}
User Fields
| Field | Type | Required | Notes |
|---|---|---|---|
firstName | string | Yes | Patient first name |
lastName | string | Yes | Patient last name |
email | string | Yes | Must be unique |
gender | string | No | MALE / FEMALE / OTHER |
phoneNumber | string | Yes | E.164 format |
dob | string | Yes | YYYY-MM-DD |
languagePreferences | array | No | ISO language codes |
shippingAddress | object | No | Shipping address |
Shipping Address
{
"addressLine1": "2720 Providence Hills Drive",
"addressLine2": "QAZ",
"city": "Matthews",
"state": "NC",
"country": "US",
"postalCode": "28105"
}
Total Payment
{
"amount": 159,
"currency": "USD",
"description": "Total amount",
"providerReference": {
"type": "SETUP_INTENT",
"id": "seti_xxx"
}
}
Payment Fields
| Field | Type | Required | Description |
|---|---|---|---|
amount | number | Yes | Total amount |
currency | string | Yes | ISO 4217 |
description | string | No | Payment description |
status | string | No | UNPAID if no payment method |
providerReference.type | string | Yes | SETUP_INTENT / PAYMENT_INTENT / PAYMENT_TOKEN |
providerReference.id | string | Yes | Gateway reference ID |
Products
Each case can include one or more products.
{
"id": "product-uuid",
"form": {
"title": "Healthcare Intake Form",
"description": "Patient intake form for healthcare services",
"questions": []
}
}
Product Form
{
"title": "Healthcare Form",
"description": "Patient form",
"questions": []
}
Form Questions
Question Fields
| Field | Type | Required | Description |
|---|---|---|---|
question | string | Yes | Question text |
answer | string | Yes | User response |
type | string | Yes | Question type |
required | boolean | No | Mandatory flag |
phi | boolean | No | PHI indicator |
options | array | No | Selectable options |
Supported Question Types
- TEXT
- SINGLESELECT
- MULTISELECT
PHI Handling
Questions marked with "phi": true are treated as Protected Health Information (PHI) and are stored and processed according to HIPAA compliance requirements.
Example Request
{
"isTest": true, // optional, default is false
"forceCreate": false, // optional, default is false
"user": {
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com",
"gender": "MALE",
"phoneNumber": "+1987654321",
"dob": "1990-05-15",
"languagePreferences": [
"en"
],
"shippingAddress": {
"addressLine1": "2720 Providence Hills Drive",
"addressLine2": "", // Optional
"city": "New York",
"state": "NY",
"country": "US",
"postalCode": "28105"
}
},
// "promoCodes": {},
"payment": {
"amount": 159,
"currency": "USD",
// "status": "UNPAID", -- only when payment method not provided
"description": "Monthly Plan",
"providerReference": {
"type": "SETUP_INTENT", //for nmi: PAYMENT_TOKEN, stripe: SETUP_INTENT, PAYMENT_INTENT
"id": "seti_1Sk8JiGkkQS2eXzhTHyVTDj9"
}
},
"products": [
{
"id": "9fc0d0f5-f211-4bf9-b105-485b1f29eb39",
"form": {
"title": "Healthcare Intake Form",
"description": "Patient intake form for healthcare services",
"questions": [
{
"question": "How much do you weigh?",
"answer": "138 lbs",
"phi": true,
"type": "TEXT"
},
{
"question": "What is your height?",
"answer": "5' 7''",
"phi": true,
"type": "TEXT"
},
{
"question": "What are your weight loss goals?",
"answer": "Lose 1-20lbs for good",
"type": "SINGLESELECT",
"required": true,
"options": [
"Lose 1-20lbs for good",
"Lose 21-50lbs for good",
"Lose over 50 for good",
"Maintain my healthy weight",
"None of the above",
"other"
]
},
{
"question": "What weight loss initiatives have you tried in the past? Select all that apply",
"answer": "[\"Other GLP1's\"]",
"type": "MULTISELECT",
"required": true,
"options": [
"Exercise",
"Dieting",
"Weight-loss Supplements",
"Intermittent Fasting",
"Other GLP1's",
"Other"
]
},
{
"question": "BMI Calculation",
"answer": "21.61",
"type": "TEXT"
},
{
"question": "What is your age?",
"answer": "58",
"type": "TEXT"
},
{
"question": "Are you currently taking any GLP-1 medications?",
"answer": "Yes",
"type": "SINGLESELECT",
"required": true,
"options": [
"Yes",
"No"
]
},
{
"question": "Which GLP-1 medication are you currently taking?",
"answer": "Compounded Semaglutide Injections ",
"type": "SINGLESELECT",
"options": [
"Compounded Semaglutide Injections",
"Compounded Tirzepatide Injections",
"Branded Semaglutide (Wegovy or Ozempic)",
"Branded Tirzepatide (Zepbound or Mounjaro)",
"Oral Semaglutide",
"Oral Tirzepatide"
]
},
{
"question": "What was the approximate date of your last dose?",
"answer": "2025-10-19",
"type": "SINGLESELECT"
},
{
"question": "What was the strength of your last dose? Please provide strength of last dose in milligrams (mg) if known",
"answer": "50 ml",
"type": "SINGLESELECT"
},
{
"question": "GLP-1 is available as an injection or a dissolvable tablet. Which do you prefer?",
"answer": "I prefer to inject",
"type": "SINGLESELECT",
"required": true,
"options": [
"I prefer to inject",
"I prefer a tablet"
]
}
]
}
},
{
"id": "9fc0d0f5-f211-4bf9-b105-485b1f29eb39",
"form": {
"title": "Healthcare Intake Form",
"description": "Patient intake form for healthcare services",
"questions": [
{
"question": "How much do you weigh QAZ?",
"answer": "138 lbs",
"phi": true,
"type": "TEXT"
},
{
"question": "What is your height new?",
"answer": "5' 7''",
"phi": true,
"type": "TEXT"
},
{
"question": "What are your weight loss goals?",
"answer": "Lose 1-20lbs for good",
"type": "SINGLESELECT",
"required": true,
"options": [
"Lose 1-20lbs for good",
"Lose 21-50lbs for good",
"Lose over 50 for good",
"Maintain my healthy weight",
"None of the above",
"other"
]
},
{
"question": "What weight loss initiatives have you tried in the past? Select all that apply",
"answer": "[\"Other GLP1's\"]",
"type": "MULTISELECT",
"required": true,
"options": [
"Exercise",
"Dieting",
"Weight-loss Supplements",
"Intermittent Fasting",
"Other GLP1's",
"Other"
]
},
{
"question": "BMI Calculation",
"answer": "21.61",
"type": "TEXT"
},
{
"question": "What is your age?",
"answer": "58",
"type": "TEXT"
},
{
"question": "Are you currently taking any GLP-1 medications?",
"answer": "Yes",
"type": "SINGLESELECT",
"required": true,
"options": [
"Yes",
"No"
]
},
{
"question": "Which GLP-1 medication are you currently taking?",
"answer": "Compounded Semaglutide Injections ",
"type": "SINGLESELECT",
"options": [
"Compounded Semaglutide Injections",
"Compounded Tirzepatide Injections",
"Branded Semaglutide (Wegovy or Ozempic)",
"Branded Tirzepatide (Zepbound or Mounjaro)",
"Oral Semaglutide",
"Oral Tirzepatide"
]
},
{
"question": "What was the approximate date of your last dose?",
"answer": "2025-10-19",
"type": "SINGLESELECT"
},
{
"question": "What was the strength of your last dose? Please provide strength of last dose in milligrams (mg) if known",
"answer": "50 ml",
"type": "SINGLESELECT"
},
{
"question": "GLP-1 is available as an injection or a dissolvable tablet. Which do you prefer?",
"answer": "I prefer to inject",
"type": "SINGLESELECT",
"required": true,
"options": [
"I prefer to inject",
"I prefer a tablet"
]
}
]
}
}
]
}
Response Format
Success Response
{
"success": true,
"data": {
"caseId": "550e8400-e29b-41d4-a716-446655440000"
}
}
Error Responses
| Code | Description |
|---|---|
| 400 | Invalid request |
| 401 | Unauthorized |
| 409 | Case conflict |
| 422 | Validation failed |
| 500 | Internal server error |
Versioning
API Version: v2.2