Sync Medicare customers and policies
Syncs Medicare customers and policies.
Customer matching: mbiNumber first, then a fallback on firstName + lastName + dateOfBirth + phoneNumber. When a customer is matched via the fallback, their mbiNumber is backfilled from the request.
Policy matching: sunFireEnrollmentCode first, then the planCode + effectiveDate composite.
Medicare plan codes: For MA and MAPD, planCode must be a complete CMS contract-style code starting with H or R. For PDP, it must start with S, H, R, E, or X. Dashes are optional in requests (H1234001000 and H1234-001-000 are accepted); careCycle stores the canonical dashed form. MS plan codes are carrier-specific and are not required to follow the CMS contract format.
When a new policy is created, the customer's existing policies of the same policyType with an effectiveDate more than one year old are terminated.
policyType must be one of MA, MAPD, MS, or PDP.
Response: For each successfully synced record, results contains the full customer record (same shape as the customer.created/customer.updated webhook) along with the policies this request changed — those created or updated from the request, plus any older policies auto-terminated as a side effect. The customer's untouched existing policies are not returned. Each returned policy carries a previousStatus field (its status before this request, or null if newly created); compare it with the policy's status to detect a flip — e.g. an auto-terminated policy comes back with previousStatus: "Active" and status: "Terminated".
Authorization
x-api-key API key required for authentication.
Keys begin with 'cc_' prefix. Get your API key from the Developer Dashboard.
In: header
Request Body
application/json
POST /v2/sync/medicare Request body
TypeScript Definitions
Use the request body type in TypeScript.
Array of Medicare customer/policy records to sync (1-100)
Medicare Beneficiary Identifier
Customer phone number (required). Accepts: +1XXXXXXXXXX, XXXXXXXXXX, (XXX) XXX-XXXX
Customer postal code. Required if timezone is not provided (for TCPA compliance).
Customer timezone. Required if postalCode is not provided (for TCPA compliance). Accepts IANA format (America/New_York) or abbreviations (EST, CST, MST, PST).
Customer date of birth. Format: MM-DD-YYYY or MM/DD/YYYY
Your external system identifier for this customer
Custom field values (max 50) Your Custom Field keys can be found here in your settings
Custom field key (e.g., 'lead_source', 'utm_campaign')
Value for the custom field
Medicare policies to sync (max 10). policyType must be MA, MAPD, MS, or PDP.
Insurance carrier name. Resolved against the canonical carrier list at https://api.carecycle.ai/v2/carriers — accepts any carrier displayName or registered alias (e.g. 'UHC', 'BCBSIL', 'Cigna Health and Life Insurance Company'). Generic 'BCBS' / 'Blue Cross Blue Shield' inputs are disambiguated to the correct state plan using the customer's state.
Name of the policy
Agent Of Record NPN
Policy type (required). Must be one of: MA, MAPD, MS, PDP
The current status of the policy
Agent Of Record First Name
Agent Of Record Last Name
Number of lives covered by the policy
SunFire enrollment code (primary identifier for matching)
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.carecycle.ai/v2/sync/medicare" \ -H "Content-Type: application/json" \ -d '{ "records": [ { "firstName": "string", "lastName": "string", "mbiNumber": "string", "phoneNumber": "string" } ] }'{
"succeeded": 0,
"failed": 0,
"results": [
{
"id": "string",
"createdAt": "string",
"updatedAt": "string",
"externalId": "string",
"status": "string",
"firstName": "string",
"middleName": "string",
"lastName": "string",
"salutation": "string",
"suffix": "string",
"preferredName": "string",
"phoneNumber": "string",
"lineType": "string",
"email": "string",
"dateOfBirth": "string",
"language": "string",
"ethnicity": "string",
"gender": "string",
"maritalStatus": "string",
"address": "string",
"address2": "string",
"city": "string",
"county": "string",
"state": "string",
"postalCode": "string",
"timezone": "string",
"mbiNumber": "string",
"medicareCard": true,
"medicarePartADate": "string",
"medicarePartBDate": "string",
"hasMedicaid": true,
"medicaidNumber": "string",
"socialSecurityDisability": true,
"veteran": true,
"vaNumber": "string",
"householdIncome": 0,
"annualIncome": 0,
"filingStatus": "string",
"dependentCount": 0,
"subsidyEligible": true,
"subsidyAmount": 0,
"carrierAssignedCustomerId": "string",
"agentName": "string",
"agentNpn": 0,
"assignedUser": {
"id": "string",
"name": "string",
"email": "string",
"npn": "string",
"role": "string",
"licensedStates": [
"string"
]
},
"doNotCall": true,
"doNotSMS": true,
"doNotEmail": true,
"doNotMail": true,
"testCustomer": true,
"policies": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"createdAt": "string",
"createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
"updatedAt": "string",
"updatedBy": "b0efe45f-0520-4e21-90f0-7e35f137732e",
"customerId": "87d8e330-2878-4742-a86f-dbbb3bf522ac",
"policyType": "MA",
"policySubType": "string",
"policyNumber": "string",
"applicationId": "string",
"carrierId": "81a9910c-2657-4f54-9feb-7f6d85d613bc",
"carrierName": "string",
"planName": "string",
"planCode": "string",
"carrierAssignedPolicyId": "string",
"healthSherpaPolicyId": "string",
"sunFireEnrollmentCode": "string",
"hiosId": "string",
"metalLevel": "Catastrophic",
"status": "Active",
"applicationApprovalDate": "string",
"effectiveDate": "string",
"terminationDate": "string",
"renewalDate": "string",
"enrollmentDate": "string",
"cancelledDate": "string",
"declineReason": "string",
"declineReasonDescription": "string",
"cancellationReason": "string",
"cancellationReasonDescription": "string",
"electionPeriod": "IEP",
"gracePeriodStartDate": "string",
"paidThroughDate": "string",
"ffmApplicationId": "string",
"ffmSubscriberId": "string",
"aorAgentId": "b69824d9-b3c3-46ff-b624-5d3573bdf8fa",
"aorFirstName": "string",
"aorLastName": "string",
"aorNpn": "string",
"writingAgentNpn": "string",
"writingAgentName": "string",
"sepType": "string",
"sepCode": "string",
"sepStartDate": "string",
"sepEndDate": "string",
"sepDocumentationReceived": true,
"sepDocumentationDate": "string",
"sepNotes": "string",
"monthlyPremium": "string",
"deductible": "string",
"outOfPocketMax": "string",
"subsidyAmount": "string",
"usingSubsidy": true,
"premiumMode": "Monthly",
"grossPremium": "string",
"netPremium": "string",
"initialCommission": "string",
"renewalCommission": "string",
"spifAmount": "string",
"policyLives": -2147483648,
"wasAgent": true,
"writtenAs": "New Business",
"isReplacing": "string",
"isRewrite": true,
"hospitalNetwork": "string",
"pcpNetwork": "string",
"dailyBenefit": "string",
"eliminationPeriod": -2147483648,
"benefitPeriod": -2147483648,
"hasCola": true,
"deathBenefit": "string",
"term": -2147483648,
"maturityDate": "string",
"riders": "string",
"exchangeStatus": "FFM",
"billingMethod": "string",
"benefitReminder": "string",
"surveyCompleted": true,
"reasonForPurchase": "string",
"policyNotes": "string",
"previousStatus": "string"
}
]
}
],
"errors": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"externalId": "string",
"error": "string"
}
]
}{
"message": "string",
"code": "string"
}{
"message": "string",
"code": "string"
}{
"message": "string",
"code": "string"
}{
"message": "string",
"code": "string"
}{
"message": "string",
"code": "VALIDATION_ERROR",
"errors": [
{
"path": [
"string"
],
"message": "string",
"expected": "string",
"received": "string",
"code": "string"
}
],
"failedRecords": [
{
"index": 0,
"phoneNumber": "string",
"firstName": "string",
"lastName": "string",
"externalId": "string"
}
]
}{
"message": "string",
"code": "string",
"retryAfter": 0
}{
"message": "string",
"code": "string"
}