curl --request POST \
--url https://api.usecobalt.com/v1/patients/{patient_mrn}/insurances \
--header 'Content-Type: application/json' \
--header 'access_token: <api-key>' \
--header 'client_id: <api-key>' \
--header 'client_secret: <api-key>' \
--data '
{
"member_id": "MEM123456789",
"group_id": "GRP98999",
"insurance_provider_id": "insurance-provider-123",
"insurance_payer_id": "98999",
"insurance_name": "Blue Cross Anthem",
"subscriber_demographics": {
"first_name": "Jane",
"last_name": "Doe",
"street_line_1": "123 Main Street",
"city": "Los Angeles",
"state": "CA",
"zip": "90001",
"sex": "F",
"dob": "1980-01-15",
"phone": "555-123-4567"
},
"relationship_to_subscriber": "self",
"insurance_policy_type": "PPO",
"insurance_sequence": "primary",
"plan_begin_date": "2026-01-01",
"plan_end_date": "2026-12-31",
"copayment": 25,
"priority": "1",
"update_patient_demographics": true,
"update_if_exists": true,
"check_eligibility": true,
"callback_urls": [
"<string>"
]
}
'import requests
url = "https://api.usecobalt.com/v1/patients/{patient_mrn}/insurances"
payload = {
"member_id": "MEM123456789",
"group_id": "GRP98999",
"insurance_provider_id": "insurance-provider-123",
"insurance_payer_id": "98999",
"insurance_name": "Blue Cross Anthem",
"subscriber_demographics": {
"first_name": "Jane",
"last_name": "Doe",
"street_line_1": "123 Main Street",
"city": "Los Angeles",
"state": "CA",
"zip": "90001",
"sex": "F",
"dob": "1980-01-15",
"phone": "555-123-4567"
},
"relationship_to_subscriber": "self",
"insurance_policy_type": "PPO",
"insurance_sequence": "primary",
"plan_begin_date": "2026-01-01",
"plan_end_date": "2026-12-31",
"copayment": 25,
"priority": "1",
"update_patient_demographics": True,
"update_if_exists": True,
"check_eligibility": True,
"callback_urls": ["<string>"]
}
headers = {
"client_id": "<api-key>",
"client_secret": "<api-key>",
"access_token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
client_id: '<api-key>',
client_secret: '<api-key>',
access_token: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
member_id: 'MEM123456789',
group_id: 'GRP98999',
insurance_provider_id: 'insurance-provider-123',
insurance_payer_id: '98999',
insurance_name: 'Blue Cross Anthem',
subscriber_demographics: {
first_name: 'Jane',
last_name: 'Doe',
street_line_1: '123 Main Street',
city: 'Los Angeles',
state: 'CA',
zip: '90001',
sex: 'F',
dob: '1980-01-15',
phone: '555-123-4567'
},
relationship_to_subscriber: 'self',
insurance_policy_type: 'PPO',
insurance_sequence: 'primary',
plan_begin_date: '2026-01-01',
plan_end_date: '2026-12-31',
copayment: 25,
priority: '1',
update_patient_demographics: true,
update_if_exists: true,
check_eligibility: true,
callback_urls: ['<string>']
})
};
fetch('https://api.usecobalt.com/v1/patients/{patient_mrn}/insurances', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.usecobalt.com/v1/patients/{patient_mrn}/insurances",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'member_id' => 'MEM123456789',
'group_id' => 'GRP98999',
'insurance_provider_id' => 'insurance-provider-123',
'insurance_payer_id' => '98999',
'insurance_name' => 'Blue Cross Anthem',
'subscriber_demographics' => [
'first_name' => 'Jane',
'last_name' => 'Doe',
'street_line_1' => '123 Main Street',
'city' => 'Los Angeles',
'state' => 'CA',
'zip' => '90001',
'sex' => 'F',
'dob' => '1980-01-15',
'phone' => '555-123-4567'
],
'relationship_to_subscriber' => 'self',
'insurance_policy_type' => 'PPO',
'insurance_sequence' => 'primary',
'plan_begin_date' => '2026-01-01',
'plan_end_date' => '2026-12-31',
'copayment' => 25,
'priority' => '1',
'update_patient_demographics' => true,
'update_if_exists' => true,
'check_eligibility' => true,
'callback_urls' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"access_token: <api-key>",
"client_id: <api-key>",
"client_secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.usecobalt.com/v1/patients/{patient_mrn}/insurances"
payload := strings.NewReader("{\n \"member_id\": \"MEM123456789\",\n \"group_id\": \"GRP98999\",\n \"insurance_provider_id\": \"insurance-provider-123\",\n \"insurance_payer_id\": \"98999\",\n \"insurance_name\": \"Blue Cross Anthem\",\n \"subscriber_demographics\": {\n \"first_name\": \"Jane\",\n \"last_name\": \"Doe\",\n \"street_line_1\": \"123 Main Street\",\n \"city\": \"Los Angeles\",\n \"state\": \"CA\",\n \"zip\": \"90001\",\n \"sex\": \"F\",\n \"dob\": \"1980-01-15\",\n \"phone\": \"555-123-4567\"\n },\n \"relationship_to_subscriber\": \"self\",\n \"insurance_policy_type\": \"PPO\",\n \"insurance_sequence\": \"primary\",\n \"plan_begin_date\": \"2026-01-01\",\n \"plan_end_date\": \"2026-12-31\",\n \"copayment\": 25,\n \"priority\": \"1\",\n \"update_patient_demographics\": true,\n \"update_if_exists\": true,\n \"check_eligibility\": true,\n \"callback_urls\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("client_id", "<api-key>")
req.Header.Add("client_secret", "<api-key>")
req.Header.Add("access_token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.usecobalt.com/v1/patients/{patient_mrn}/insurances")
.header("client_id", "<api-key>")
.header("client_secret", "<api-key>")
.header("access_token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"member_id\": \"MEM123456789\",\n \"group_id\": \"GRP98999\",\n \"insurance_provider_id\": \"insurance-provider-123\",\n \"insurance_payer_id\": \"98999\",\n \"insurance_name\": \"Blue Cross Anthem\",\n \"subscriber_demographics\": {\n \"first_name\": \"Jane\",\n \"last_name\": \"Doe\",\n \"street_line_1\": \"123 Main Street\",\n \"city\": \"Los Angeles\",\n \"state\": \"CA\",\n \"zip\": \"90001\",\n \"sex\": \"F\",\n \"dob\": \"1980-01-15\",\n \"phone\": \"555-123-4567\"\n },\n \"relationship_to_subscriber\": \"self\",\n \"insurance_policy_type\": \"PPO\",\n \"insurance_sequence\": \"primary\",\n \"plan_begin_date\": \"2026-01-01\",\n \"plan_end_date\": \"2026-12-31\",\n \"copayment\": 25,\n \"priority\": \"1\",\n \"update_patient_demographics\": true,\n \"update_if_exists\": true,\n \"check_eligibility\": true,\n \"callback_urls\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.usecobalt.com/v1/patients/{patient_mrn}/insurances")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["client_id"] = '<api-key>'
request["client_secret"] = '<api-key>'
request["access_token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"member_id\": \"MEM123456789\",\n \"group_id\": \"GRP98999\",\n \"insurance_provider_id\": \"insurance-provider-123\",\n \"insurance_payer_id\": \"98999\",\n \"insurance_name\": \"Blue Cross Anthem\",\n \"subscriber_demographics\": {\n \"first_name\": \"Jane\",\n \"last_name\": \"Doe\",\n \"street_line_1\": \"123 Main Street\",\n \"city\": \"Los Angeles\",\n \"state\": \"CA\",\n \"zip\": \"90001\",\n \"sex\": \"F\",\n \"dob\": \"1980-01-15\",\n \"phone\": \"555-123-4567\"\n },\n \"relationship_to_subscriber\": \"self\",\n \"insurance_policy_type\": \"PPO\",\n \"insurance_sequence\": \"primary\",\n \"plan_begin_date\": \"2026-01-01\",\n \"plan_end_date\": \"2026-12-31\",\n \"copayment\": 25,\n \"priority\": \"1\",\n \"update_patient_demographics\": true,\n \"update_if_exists\": true,\n \"check_eligibility\": true,\n \"callback_urls\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"patient_insurance_id": "<string>",
"job_id": 123
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}Add Patient Insurance
Queue the addition of insurance information to a patient record in the EMR system. This is an asynchronous operation.
curl --request POST \
--url https://api.usecobalt.com/v1/patients/{patient_mrn}/insurances \
--header 'Content-Type: application/json' \
--header 'access_token: <api-key>' \
--header 'client_id: <api-key>' \
--header 'client_secret: <api-key>' \
--data '
{
"member_id": "MEM123456789",
"group_id": "GRP98999",
"insurance_provider_id": "insurance-provider-123",
"insurance_payer_id": "98999",
"insurance_name": "Blue Cross Anthem",
"subscriber_demographics": {
"first_name": "Jane",
"last_name": "Doe",
"street_line_1": "123 Main Street",
"city": "Los Angeles",
"state": "CA",
"zip": "90001",
"sex": "F",
"dob": "1980-01-15",
"phone": "555-123-4567"
},
"relationship_to_subscriber": "self",
"insurance_policy_type": "PPO",
"insurance_sequence": "primary",
"plan_begin_date": "2026-01-01",
"plan_end_date": "2026-12-31",
"copayment": 25,
"priority": "1",
"update_patient_demographics": true,
"update_if_exists": true,
"check_eligibility": true,
"callback_urls": [
"<string>"
]
}
'import requests
url = "https://api.usecobalt.com/v1/patients/{patient_mrn}/insurances"
payload = {
"member_id": "MEM123456789",
"group_id": "GRP98999",
"insurance_provider_id": "insurance-provider-123",
"insurance_payer_id": "98999",
"insurance_name": "Blue Cross Anthem",
"subscriber_demographics": {
"first_name": "Jane",
"last_name": "Doe",
"street_line_1": "123 Main Street",
"city": "Los Angeles",
"state": "CA",
"zip": "90001",
"sex": "F",
"dob": "1980-01-15",
"phone": "555-123-4567"
},
"relationship_to_subscriber": "self",
"insurance_policy_type": "PPO",
"insurance_sequence": "primary",
"plan_begin_date": "2026-01-01",
"plan_end_date": "2026-12-31",
"copayment": 25,
"priority": "1",
"update_patient_demographics": True,
"update_if_exists": True,
"check_eligibility": True,
"callback_urls": ["<string>"]
}
headers = {
"client_id": "<api-key>",
"client_secret": "<api-key>",
"access_token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
client_id: '<api-key>',
client_secret: '<api-key>',
access_token: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
member_id: 'MEM123456789',
group_id: 'GRP98999',
insurance_provider_id: 'insurance-provider-123',
insurance_payer_id: '98999',
insurance_name: 'Blue Cross Anthem',
subscriber_demographics: {
first_name: 'Jane',
last_name: 'Doe',
street_line_1: '123 Main Street',
city: 'Los Angeles',
state: 'CA',
zip: '90001',
sex: 'F',
dob: '1980-01-15',
phone: '555-123-4567'
},
relationship_to_subscriber: 'self',
insurance_policy_type: 'PPO',
insurance_sequence: 'primary',
plan_begin_date: '2026-01-01',
plan_end_date: '2026-12-31',
copayment: 25,
priority: '1',
update_patient_demographics: true,
update_if_exists: true,
check_eligibility: true,
callback_urls: ['<string>']
})
};
fetch('https://api.usecobalt.com/v1/patients/{patient_mrn}/insurances', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.usecobalt.com/v1/patients/{patient_mrn}/insurances",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'member_id' => 'MEM123456789',
'group_id' => 'GRP98999',
'insurance_provider_id' => 'insurance-provider-123',
'insurance_payer_id' => '98999',
'insurance_name' => 'Blue Cross Anthem',
'subscriber_demographics' => [
'first_name' => 'Jane',
'last_name' => 'Doe',
'street_line_1' => '123 Main Street',
'city' => 'Los Angeles',
'state' => 'CA',
'zip' => '90001',
'sex' => 'F',
'dob' => '1980-01-15',
'phone' => '555-123-4567'
],
'relationship_to_subscriber' => 'self',
'insurance_policy_type' => 'PPO',
'insurance_sequence' => 'primary',
'plan_begin_date' => '2026-01-01',
'plan_end_date' => '2026-12-31',
'copayment' => 25,
'priority' => '1',
'update_patient_demographics' => true,
'update_if_exists' => true,
'check_eligibility' => true,
'callback_urls' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"access_token: <api-key>",
"client_id: <api-key>",
"client_secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.usecobalt.com/v1/patients/{patient_mrn}/insurances"
payload := strings.NewReader("{\n \"member_id\": \"MEM123456789\",\n \"group_id\": \"GRP98999\",\n \"insurance_provider_id\": \"insurance-provider-123\",\n \"insurance_payer_id\": \"98999\",\n \"insurance_name\": \"Blue Cross Anthem\",\n \"subscriber_demographics\": {\n \"first_name\": \"Jane\",\n \"last_name\": \"Doe\",\n \"street_line_1\": \"123 Main Street\",\n \"city\": \"Los Angeles\",\n \"state\": \"CA\",\n \"zip\": \"90001\",\n \"sex\": \"F\",\n \"dob\": \"1980-01-15\",\n \"phone\": \"555-123-4567\"\n },\n \"relationship_to_subscriber\": \"self\",\n \"insurance_policy_type\": \"PPO\",\n \"insurance_sequence\": \"primary\",\n \"plan_begin_date\": \"2026-01-01\",\n \"plan_end_date\": \"2026-12-31\",\n \"copayment\": 25,\n \"priority\": \"1\",\n \"update_patient_demographics\": true,\n \"update_if_exists\": true,\n \"check_eligibility\": true,\n \"callback_urls\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("client_id", "<api-key>")
req.Header.Add("client_secret", "<api-key>")
req.Header.Add("access_token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.usecobalt.com/v1/patients/{patient_mrn}/insurances")
.header("client_id", "<api-key>")
.header("client_secret", "<api-key>")
.header("access_token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"member_id\": \"MEM123456789\",\n \"group_id\": \"GRP98999\",\n \"insurance_provider_id\": \"insurance-provider-123\",\n \"insurance_payer_id\": \"98999\",\n \"insurance_name\": \"Blue Cross Anthem\",\n \"subscriber_demographics\": {\n \"first_name\": \"Jane\",\n \"last_name\": \"Doe\",\n \"street_line_1\": \"123 Main Street\",\n \"city\": \"Los Angeles\",\n \"state\": \"CA\",\n \"zip\": \"90001\",\n \"sex\": \"F\",\n \"dob\": \"1980-01-15\",\n \"phone\": \"555-123-4567\"\n },\n \"relationship_to_subscriber\": \"self\",\n \"insurance_policy_type\": \"PPO\",\n \"insurance_sequence\": \"primary\",\n \"plan_begin_date\": \"2026-01-01\",\n \"plan_end_date\": \"2026-12-31\",\n \"copayment\": 25,\n \"priority\": \"1\",\n \"update_patient_demographics\": true,\n \"update_if_exists\": true,\n \"check_eligibility\": true,\n \"callback_urls\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.usecobalt.com/v1/patients/{patient_mrn}/insurances")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["client_id"] = '<api-key>'
request["client_secret"] = '<api-key>'
request["access_token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"member_id\": \"MEM123456789\",\n \"group_id\": \"GRP98999\",\n \"insurance_provider_id\": \"insurance-provider-123\",\n \"insurance_payer_id\": \"98999\",\n \"insurance_name\": \"Blue Cross Anthem\",\n \"subscriber_demographics\": {\n \"first_name\": \"Jane\",\n \"last_name\": \"Doe\",\n \"street_line_1\": \"123 Main Street\",\n \"city\": \"Los Angeles\",\n \"state\": \"CA\",\n \"zip\": \"90001\",\n \"sex\": \"F\",\n \"dob\": \"1980-01-15\",\n \"phone\": \"555-123-4567\"\n },\n \"relationship_to_subscriber\": \"self\",\n \"insurance_policy_type\": \"PPO\",\n \"insurance_sequence\": \"primary\",\n \"plan_begin_date\": \"2026-01-01\",\n \"plan_end_date\": \"2026-12-31\",\n \"copayment\": 25,\n \"priority\": \"1\",\n \"update_patient_demographics\": true,\n \"update_if_exists\": true,\n \"check_eligibility\": true,\n \"callback_urls\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"patient_insurance_id": "<string>",
"job_id": 123
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}job_id for tracking. Results are delivered via webhook.
emr_insurance_id. This is the same record identifier returned later as emr_insurance_id in POST /v1/patients/fetch with include: ["insurances"], and it can be used with the insurance update endpoint.member_id is the subscriber/member number you provide (the policy number from the insurance card), not an EHR-generated value. The EHR-generated record identifier is emr_insurance_id, returned on the webhook after the record is created.Insurance Provider Resolution
The API supports three methods for identifying the insurance provider (in order of priority):-
By Cobalt Provider ID (Most specific, recommended):
{ "insurance_provider_id": "abc123def456" } -
By Name + Payer ID (Most specific when ID not available):
{ "insurance_name": "ACME Health", "insurance_payer_id": "98999" } -
By Name Only (Least specific, may match first result if multiple exist):
{ "insurance_name": "ACME Health" }
GET /v1/insurance-providers to retrieve the correct insurance provider identifiers for your organization.Validation Rules
Address Validation
- State: Must be a valid two-letter US state abbreviation (accepts lowercase, e.g., “ca” or “CA”)
- ZIP Code: Must be either 5 digits (e.g., “90001”) or 9 digits with hyphen (e.g., “90001-1234”)
Date Validation
- plan_begin_date: Must be in YYYY-MM-DD format (e.g., “2025-01-15”)
- plan_end_date: Optional. Must be in YYYY-MM-DD format (e.g., “2025-12-31”). Omit for open-ended coverage.
Priority (Optional)
- priority: Insurance priority level (valid values: “1”, “2”, “3”). When not provided, the EMR will use its default priority setting.
Relationship to Subscriber
Accepts both codes and names (case-insensitive):- Codes: “01”, “02”, “32”, “33”, “17”, “20”, “53”, “25”
- Names: “self”, “spouse”, “mother”, “father”, “step parent”, “employee”, “life partner”, “other”
Insurance Provider Validation
insurance_payer_idalone is not supported (must be combined withinsurance_name)- If provider ID, name, or name+payer_id combination is not found, returns 404 with helpful message
Example Requests
Minimal Request (Using Insurance Provider ID)
curl -X POST https://api.usecobalt.com/v1/patients/MRN123456/insurances \
-H "Content-Type: application/json" \
-H "client_id: your_client_id" \
-H "client_secret: your_client_secret" \
-H "access_token: your_access_token" \
-d '{
"member_id": "MEM123456789",
"group_id": "GRP98999",
"plan_begin_date": "2025-01-01",
"insurance_provider_id": "abc123def456",
"subscriber_demographics": {
"first_name": "John",
"last_name": "Doe",
"street_line_1": "123 Main St",
"city": "Los Angeles",
"state": "CA",
"zip": "90001"
}
}'
Complete Request (Using Insurance Name + Payer ID)
curl -X POST https://api.usecobalt.com/v1/patients/MRN123456/insurances \
-H "Content-Type: application/json" \
-H "client_id: your_client_id" \
-H "client_secret: your_client_secret" \
-H "access_token: your_access_token" \
-d '{
"member_id": "MEM123456789",
"group_id": "GRP98999",
"insurance_name": "ACME Health",
"insurance_payer_id": "98999",
"plan_begin_date": "2025-01-01",
"plan_end_date": "2025-12-31",
"copayment": 25,
"priority": "1",
"relationship_to_subscriber": "spouse",
"subscriber_demographics": {
"first_name": "Jane",
"last_name": "Doe",
"street_line_1": "123 Main St",
"city": "Los Angeles",
"state": "CA",
"zip": "90001-1234"
}
}'
Self-Insured Patient with 9-Digit ZIP
curl -X POST https://api.usecobalt.com/v1/patients/MRN789012/insurances \
-H "Content-Type: application/json" \
-H "client_id: your_client_id" \
-H "client_secret: your_client_secret" \
-H "access_token: your_access_token" \
-d '{
"member_id": "MEM987654321",
"group_id": "GRP11111",
"insurance_name": "Blue Cross Blue Shield",
"plan_begin_date": "2025-01-01",
"relationship_to_subscriber": "01",
"subscriber_demographics": {
"first_name": "Jane",
"last_name": "Smith",
"street_line_1": "456 Oak Ave",
"city": "San Francisco",
"state": "ca",
"zip": "94102-1234"
}
}'
Example Response
{
"success": true,
"message": "Insurance addition queued successfully. Processing will begin shortly.",
"patient_insurance_id": "xyz789abc123",
"job_id": 12345
}
Webhook Events
After the insurance addition is processed, a webhook event will be sent to your configured webhook URL.Success Event (patient.insurance.added)
{
"id": "evt_abc123def456",
"access_token_reference_id": "your_reference_id",
"object": "event",
"created": "2025-01-15T10:30:00.000Z",
"type": "patient.insurance.added",
"job_id": "12345",
"data": {
"patient_insurance_id": "xyz789abc123",
"patient_mrn": "MRN123456",
"member_id": "MEM123456789",
"group_id": "GRP98999",
"plan_begin_date": "2025-01-01",
"plan_end_date": "2025-12-31",
"copayment": 25,
"priority": 1,
"relationship_to_subscriber": "self",
"emr_insurance_id": "51638"
}
}
emr_insurance_id is the EMR-native insurance record ID. The same value is returned in live fetch as emr_insurance_id and should be used when calling PATCH /v1/patients/:patient_mrn/insurances/:emr_insurance_id.audit_trail is present in the success payload for some EMRs and absent for others, so the example above may carry more or fewer fields than your integration returns.Failure Event (patient.insurance.failed)
{
"id": "evt_xyz789abc123",
"access_token_reference_id": "your_reference_id",
"object": "event",
"created": "2025-01-15T10:30:00.000Z",
"type": "patient.insurance.failed",
"job_id": "12345",
"data": {
"patient_insurance_id": "xyz789abc123",
"patient_mrn": "MRN123456",
"failure_reason": "Patient not found in EMR system"
}
}
patient_insurance_id and job_id, then listen for webhooks to determine the final status.Authorizations
Path Parameters
Patient MRN.
Body
Insurance member / subscriber ID.
"MEM123456789"
Insurance group number.
"GRP98999"
Cobalt insurance provider ID (one insurance identifier). Use GET /v1/insurance-providers to retrieve valid IDs.
"insurance-provider-123"
Insurance payer ID, used to disambiguate insurance_name.
"98999"
Insurance provider name (one insurance identifier).
"Blue Cross Anthem"
Policy holder demographics.
Show child attributes
Show child attributes
Patient relationship to the policy holder.
"self"
Insurance policy type / coverage category.
"PPO"
Coverage order (e.g. primary / secondary).
"primary"
Plan begin date (YYYY-MM-DD).
^\d{4}-\d{2}-\d{2}$"2026-01-01"
Plan end date (YYYY-MM-DD). Omit for open-ended coverage.
^\d{4}-\d{2}-\d{2}$"2026-12-31"
Copayment amount.
x >= 025
Insurance priority (1=primary, 2=secondary, 3=tertiary).
1, 2, 3 "1"
Whether to also update the patient demographics in the EMR. Defaults to true.
Update the matching insurance if one already exists instead of adding a new record. Defaults to false.
Run an eligibility check after the insurance is added. Defaults to false.
URLs to receive the completion webhook, in addition to the account webhook.