Create Case with Products
/api/v1/casesCreates a new case with user details, payment, and products in a single request. Supports forced case creation, intake forms with PHI, subscriptions, and test mode.
https://api.care360-next.carevalidate.com/api/v1/caseshttps://api-staging.care360-next.carevalidate.com/api/v1/casesParameters
AuthorizationstringrequiredBearer token for authentication. Format: `Bearer <access_token>`
Content-TypestringrequiredMust be `application/json`
statusstringoptionalInitial case status. Accepts OPEN or ABANDONED (case-insensitive). Default is OPEN.
isTestbooleanoptionalEnables test mode. Default is false.
forceCreatebooleanoptionalForce new case creation even if an open case exists. Default is false.
userobjectrequiredUser details for the case
Show 8 child properties
firstNamestringrequiredPatient first name
lastNamestringrequiredPatient last name
emailstringrequiredPatient email address. Must be unique.
genderstringoptionalPatient gender
phoneNumberstringrequiredPatient phone number in E.164 format
+1987654321dobstringrequiredDate of birth in YYYY-MM-DD format
1990-05-15languagePreferencesarrayoptionalISO language codes for preferred languages
["en", "es", "fr"]shippingAddressobjectoptionalShipping address for the patient
Show 6 child properties
addressLine1stringoptionalStreet address line 1
addressLine2stringoptionalStreet address line 2 (optional)
citystringoptionalCity name
statestringoptionalState abbreviation
countrystringoptionalCountry code (e.g. US)
postalCodestringoptionalPostal/ZIP code
paymentobjectoptionalTotal payment information for the case
Show 5 child properties
amountnumberrequiredTotal payment amount
currencystringrequiredISO 4217 currency code
USDdescriptionstringoptionalPayment description
statusstringoptionalUse UNPAID when no payment method is provided
providerReferenceobjectrequiredPayment gateway reference
Show 2 child properties
typestringrequiredPayment reference type
idstringrequiredGateway reference ID
seti_1Sk8JiGkkQS2eXzhTHyVTDj9productsarrayrequiredProducts to attach to the case. Each case can include one or more products.
Show 4 child properties
idstring (UUID)requiredOrganization product ID
visitTypestringoptionalVisit type for this product
formobjectoptionalHealthcare intake form
Show 3 child properties
titlestringoptionalForm title
descriptionstringoptionalForm description
questionsarrayoptionalArray of form questions
subscriptionobjectoptionalOptional subscription for this case product. Values are stored on the case product and returned in GET /api/v1/cases and in GraphQL.
Show 2 child properties
intervalstringoptionalSubscription interval (case-sensitive, lowercase)
intervalCountintegeroptionalPositive integer for interval count (e.g. 1, 2, 3, 6, 12)
Abandoned Cart Behavior
user.firstNameanduser.lastNameare required for all requests, including whenstatusisABANDONED.- When
statusisABANDONED, the case is created withABANDONEDstatus. - Products are still attached to the case.
- Payment validation and payment processing are skipped.
- Auto-assignment is skipped, so the case is not assigned to providers.
- Case-created notifications are skipped.
Form Question Fields
questionstringrequiredQuestion text
answerstringrequiredUser response
typestringrequiredQuestion type
requiredbooleanoptionalWhether the question is mandatory
phibooleanoptionalPHI indicator. Questions marked with `true` are treated as Protected Health Information and stored per HIPAA compliance requirements.
optionsarrayoptionalSelectable options for SINGLESELECT and MULTISELECT question types
Examples
- cURL
- JavaScript
- Python
curl -X POST "https://api.care360-next.carevalidate.com/api/v1/cases" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"isTest": true,
"forceCreate": 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": "",
"city": "New York",
"state": "NY",
"country": "US",
"postalCode": "28105"
}
},
"payment": {
"amount": 159,
"currency": "USD",
"description": "Monthly Plan",
"providerReference": {
"type": "SETUP_INTENT",
"id": "seti_1Sk8JiGkkQS2eXzhTHyVTDj9"
}
},
"products": [
{
"id": "9fc0d0f5-f211-4bf9-b105-485b1f29eb39",
"visitType": "ASYNC_TEXT_EMAIL",
"subscription": {
"interval": "month",
"intervalCount": 3
},
"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 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"
]
}
]
}
}
]
}'
const response = await fetch(
"https://api.care360-next.carevalidate.com/api/v1/cases",
{
method: "POST",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({
isTest: true,
forceCreate: 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: "",
city: "New York",
state: "NY",
country: "US",
postalCode: "28105",
},
},
payment: {
amount: 159,
currency: "USD",
description: "Monthly Plan",
providerReference: {
type: "SETUP_INTENT",
id: "seti_1Sk8JiGkkQS2eXzhTHyVTDj9",
},
},
products: [
{
id: "9fc0d0f5-f211-4bf9-b105-485b1f29eb39",
visitType: "ASYNC_TEXT_EMAIL",
subscription: {
interval: "month",
intervalCount: 3,
},
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 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",
],
},
],
},
},
],
}),
}
);
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://api.care360-next.carevalidate.com/api/v1/cases",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json",
},
json={
"isTest": True,
"forceCreate": 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": "",
"city": "New York",
"state": "NY",
"country": "US",
"postalCode": "28105",
},
},
"payment": {
"amount": 159,
"currency": "USD",
"description": "Monthly Plan",
"providerReference": {
"type": "SETUP_INTENT",
"id": "seti_1Sk8JiGkkQS2eXzhTHyVTDj9",
},
},
"products": [
{
"id": "9fc0d0f5-f211-4bf9-b105-485b1f29eb39",
"visitType": "ASYNC_TEXT_EMAIL",
"subscription": {
"interval": "month",
"intervalCount": 3,
},
"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 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",
],
},
],
},
},
],
},
)
print(response.json())
Abandoned Cart Request Example
{
"status": "ABANDONED",
"user": {
"firstName": "Jane",
"lastName": "Doe",
"email": "abandoned@example.com"
},
"products": [
{
"id": "9fc0d0f5-f211-4bf9-b105-485b1f29eb39"
}
]
}
Responses
▶200SuccessCase created successfully with products attached.
{
"success": true,
"data": {
"caseId": "550e8400-e29b-41d4-a716-446655440000"
}
}
▶400Bad RequestInvalid request body or parameters.
{
"success": false,
"message": "Invalid request"
}
▶401UnauthorizedMissing or invalid authentication token.
{
"success": false,
"message": "Unauthorized"
}
▶409ConflictCase conflict (e.g., open case already exists and forceCreate is false).
{
"success": false,
"message": "Case conflict"
}
▶422Validation FailedRequest body failed validation rules.
{
"success": false,
"message": "Validation failed"
}
▶500Internal Server ErrorUnexpected server error.
{
"success": false,
"message": "Internal server error"
}
Try It Out
API Version: v2.2